
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 Подавляет обычный вывод; вместо этого печатает имя каждого входного файла, из которого обычно не печатается вывод. Сканирование остановится при первом совпадении.