$ grep -rnw 'directory' -e "pattern"
-r is recursive, -n is line number and -w stands match the whole word. Along with these, --exclude or --include parameter could be used for efficient searching. Something like below:
$ grep --include={*.c,*.h} -rnw 'directory' -e "pattern"
This will only search through the files which have .c or .h extensions. Similarly a sample use of --exclude:
$ grep --exclude=*.o -rnw 'directory' -e "pattern"
Above will exclude searching all the files ending with .o extension.
Some options
- i stands for upper/lower case (optional in your case)
- ...
Mark: (Source)[http://stackoverflow.com/questions/16956810/finding-all-files-containing-a-text-string-in-linux]