Search for a text within files in a directory

I need to search for a particular string. This string might be present in many files. The directory in which I am present has more than one subdirectories. Hence, the search should check in all the subdirectories and all the corresponding files and give a list of files which have the particular string.How is this possible in unix?

eg: Directory structure---> abc/cde/xyz

Files present:abc/cde/bat.ksh
abc/cde/xyz/cat.ksh
abc/dog.ksh

File contents:
abc/cde/bat.ksh
bat call far

abc/cde/xyz/cat.ksh
cat call next

abc/dog.ksh
dog fall first

If the string 'call' is searched, the outputs should be abc/cde/bat.ksh, abc/cde/xyz/cat.ksh.

Urgent help required, please...Any input..highly appreciated.

Try this...

find . -type f -exec grep -l 'call' {} \;

Thanks for your assistance..but, its not working..any other way to display the details?

grep -rl  call *

Man grep

 -R, -r, --recursive
          Read all files under each directory, recursively; this is equiv-
          alent to the -d recurse option.

 -l, --files-with-matches
          Suppress normal output; instead print the  name  of  each  input
          file  from  which  output would normally have been printed.  The
          scanning will stop on the first match.

How is this not working? What results do you get?

Apologise.....My session was getting hung when i tried running this cmd. Some problem with the server. Looks like its working fine. Just to add:
The command
find . -type f -exec grep -li 'accruals' {} \;
works in such a way that the case is also ignored.

thanks for all your help......