如何grep grep的结果?

Tim*_*Tim 8 grep

我需要 grep 一些文件以查看哪些文件包含某个单词:

grep -l word *
Run Code Online (Sandbox Code Playgroud)

接下来我需要 grep 该文件列表以查看哪些文件包含不同的单词。简单的方法可能是编写一个脚本,但我不知道如何工作。

小智 11

假设没有文件名包含空格、单引号、双引号或反斜杠字符(或以 - 开头grep),您可以执行以下操作:

grep -l word * | xargs grep word2
Run Code Online (Sandbox Code Playgroud)

Xargs 将对第一个 grep 中的每个文件运行第二个 grep。

使用 GNU grep/xargs或兼容,您可以通过以下方式使其更可靠:

grep -lZ word ./* | xargs -r0 grep word2
Run Code Online (Sandbox Code Playgroud)

使用-Z使grep打印以 NUL 分隔的文件名,以便它可以与xargs -0. 如果第一个没有找到任何东西-r,则xargs避免grep运行第二个的选项grep