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

У меня есть команда, которая находит все файлы 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' '{}' ';'
Другие вопросы по тегам