当我运行以下命令时:
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 并显示匹配的文件名。