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"