Skip to content

Instantly share code, notes, and snippets.

@boywijnmaalen
Last active April 9, 2018 05:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save boywijnmaalen/90e42a183cb0270e8238759bb091d69c to your computer and use it in GitHub Desktop.
Save boywijnmaalen/90e42a183cb0270e8238759bb091d69c to your computer and use it in GitHub Desktop.
Find all files containing specific text #CLI #UNIX
$ grep -rnw '/path/to/somewhere/' -e "pattern"
# (path/ must absolute!)
# -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 or --include-dir flags could be used for efficient searching:
# this will only search through those 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"
# this works very well for me, to achieve almost the same purpose like yours.
For more options check man grep.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment