Find and remove file containing specific string linux

Published on June 23, 2020 at 1:57:59 PM GMT+8 by Administrator

Here are tips and tricks on using grep to find a specific file that containing specific patterns of string.

Find and remove file containing specific string linux

On this article we show you on how to use grep to find file that containing specific string pattern and remove the file.

grep -rnwl '/path/to/file/' -e 'PostmasterOrPattern' | xargs rm
  • -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.

If you leave out the option -l, it will give show the match pattern string.

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:

    grep --include=\*.{c,h} -rnw '/path/to/file/' -e "pattern"
  • This will exclude searching all the files ending with .o extension:

    grep --exclude=*.o -rnw '/path/to/file/' -e "pattern"
  • 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/:

    grep --exclude-dir={dir1,dir2,*.dst} -rnw '/path/to/file/' -e "pattern"

This works very well for me, to achieve almost the same purpose like yours.

For more options check man grep.