Как найти файлы, которые не содержат заданную строку поиска
У меня есть команда, которая находит все файлы PDF, которые содержат строку "Шрифт"
find /Users/me/PDFFiles/ -type f -name "*.pdf" -exec grep -H 'Font' '{}' ';'
Как я могу изменить эту команду так, чтобы она выполняла обратное действие? Находит все PDF-файлы, которые не содержат строку поиска "Шрифт"
2 ответа
Решение
Вы хотите использовать опцию "-L" grep
:
-L, --files-without-match
Only the names of files not containing selected lines are written to standard output. Path-
names are listed once per file searched. If the standard input is searched, the string
``(standard input)'' is written.
Просто добавьте флаг "L". Это делает обратное
find /Users/me/PDFFiles/ -type f -name "*.pdf" -exec grep -HL 'Font' '{}' ';'