Найти все файлы, которые не содержат заданную строку

Найти все файлы, которые не содержат заданную строку

grep -l "this is a test" выведет список всех файлов, $pwdсодержащих указанную строку. Но

grep -vl "this is a test" выведет список всех файлов, включая эти, поскольку те, которые содержат эту строку, также содержат строки без этой строки.

Я мог бы составить список первой группы, а затем перечислить все файлы в каталоге, которых нет в этом списке, но есть ли более простой способ? Я обычно использую bash, но могу переключиться на cshили даже perlесли это поможет.

решение1

Fgrep -o -r -i -L string * -o сообщает только о файле -r рекурсивно в подкаталоги -i без учета регистра -L, --files-without-match Подавляет обычный вывод; вместо этого печатает имя каждого входного файла, из которого обычно не печатается вывод. Сканирование остановится при первом совпадении.

Связанный контент