To find all the files that contain "foo" in current folder, I use:
grep -r "foo" .
To find all the files that contain "bar" in current folder, I use:
grep -r "bar" .
But how to find all files that does not contain 'foo' and 'bar'?
To print lines that do not contain some string, you use the -v
flag:
grep -r -v "bar" . | grep -v "foo"
This gives you all lines that do not contain foo
or bar
.
To print files that do not contain some string, you use the -L
flag. To non-match several strings, you can use regular expressions with the -P
flag (there are several regex flags you can use):
grep -r -L -P "(foo|bar)" .
This prints a list of files that don't contain foo
or bar
.
Thanks to Anton Kovalenko for pointing this out.
Recursively searches directories for all files that do no contains XYZ
find . -type f | xargs grep -L "XYZ"
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With