Поиск слова в файлах на выходе

Когда я запускаю следующую команду:

find loanwolf/ -name '*.html' -exec grep --color -rn 'loanwolf_tags' {} + 

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

два grep

-exec дает true или false, поэтому

 find .. -exec grep foo {} \; -exec grep bar {} \; 

не будет искать bar в файле, если foo не найден.

\; это старая школа (вам нужно бежать ; ), + новая школа.

Вы можете сделать так, как показано, чтобы получить результаты:

 find loanwolf/. -type f -name '*.html' -exec grep -lHZ loanwolf_tags {} + | xargs -r -0 grep -lH new_word 

Здесь мы смотрим на обычные файлы с расширением html, мы кормим их связью в grep и ищем в них строку creditwolf_tags. Параметр -l отображает имена файлов, в которых такая строка найдена и передается в xargs после добавления имен файлов с нулем \0 .

xargs получат эти имена файлов и разделяют их на нулевой символ, тем самым восстанавливая все xargs имен файлов. Тогда xargs будет связывать эти имена файлов и кормить их grep и искать new_word и отображать имена файлов, которые соответствуют.