在输出的文件中搜索单词

在输出的文件中搜索单词

当我运行以下命令时:

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

它在输出中给了我一些文件。我想在输出的文件中搜索一个新单词,但我不能用来grep做我认为的这样的事情。我怎么能做这样的事呢?

答案1

两个 grep

-exec给出一个真或假,所以

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

如果未找到,则不会bar在文件中搜索。foo

\;是旧学校(你需要逃离;),+是新学校。

答案2

您可以按照如下所示执行操作以获得结果:

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

这里我们正在做的是查看扩展名为 html 的常规文件,我们将其中的一堆文件提供给 grep 并在其中查找 Loanwolf_tags 字符串。该选项将显示在其中找到此类字符串的文件名,并在文件名附加 null 后将-l其转发。xargs\0

xargs接收这些文件名并将它们拆分为空字符,从而恢复所有形式的文件名。然后 xargs 将一堆这些文件名并将它们提供给grep并查找 new_word 并显示匹配的文件名。

相关内容