If your grep has the -L
(or --files-without-match
) option:
$ grep -riL "foo" *
-L, --files-without-match
each file processed.
-R, -r, --recursive
Recursively search subdirectories listed.
-i, --ignore-case
Perform case insensitive matching.
If you use l
(lowercased) you will get the opposite (files with matches)
-l, --files-with-matches
Only the names of files containing selected lines are written