grep -rnw ‘path/to/folder’ -e “import”

  • -r or -R is recursive,
  • -n is line number, and
  • -w stands 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 or —include-dir parameters could be used for efficient searching:

This will only search through the files which have .c or .h extensions:
grep —include=\*.{c,h} -rnw ‘/path/to/somewhere/’ -e “pattern”

This will exclude searching all the files ending with .o extension:
grep —exclude=*.o -rnw ‘/path/to/somewhere/’ -e “pattern”

Just like exclude files, it’s possible to exclude/include directories through —exclude-dir and —include-dir parameter. For example, this will exclude the dirs dir1/, dir2/ and all of them matching *.dst/:
grep —exclude-dir={dir1,dir2,*.dst} -rnw ‘/path/to/somewhere/’ -e “pattern”

For more options check man grep.

Grep - Other Versions

  • bingrep
  • ngrep
  • sngrep
  • cgrep
  • bgrep
  • ugrep
  • sgrep
  • vgrep