How to find all files containing specific text in Linux

Finding files containing text string in Linux is the easy task with the grep utility. grep also allows you to find files with specific text by searching directories recursively by defining -r key. Here are a few examples:

grep -rnw '/path/to/somewhere/' -e 'pattern'

  • -r or -R is recursive,
  • -n is line number, and
  • -w stands for match the whole word.
  • -l (lower-case L) can be added to just give the file name of matching files.

Along with these, --exclude, --include, --exclude-dir flags could be used for efficient searching:

  • This will only search through those files which have .c or .h extensions:
  • This will exclude searching all the files ending with .o extension:
  • For directories it’s possible to exclude a particular directory(ies) through --exclude-dir parameter. For example, this will exclude the dirs dir1/, dir2/ and all of them matching *.dst/:
Be sociable 🙂 Share!