Finding all files containing a text string on Linux

find ./directory -type f -exec grep -H ‘text-to-find-here’ {} ;

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. Just like exclude file it’s possible to exclude/include directories through –exclude-dir and –include-dir parameter, the following shows how to integrate –exclude-dir:

grep –exclude-dir={dir1,dir2,*.dst} -rnw ‘directory’ -e “pattern"