使用 grep 列出同时包含两个关键字的文件

使用 grep 列出同时包含两个关键字的文件

我想列出grep -r同时包含两个关键字(不一定在同一行)的文件(使用):word1word2

word1当我执行以下操作时,我获得包含或 的文件word2

grep -r 'word1\|word2' .

我还尝试了以下操作:

grep -r 'word1|word2'

它没有返回任何内容,但我不确定是不是因为没有同时包含这两个关键字的文件,或者没有同时包含这两个关键字的文件在同一条线上

我如何才能获取文件中某处包含这两个关键字的文件列表?

答案1

一种方法是创建包含一个关键字的文件列表,然后在该列表中搜索第二个关键字,如下所示:

grep -l word2 $(grep -rl word1 .)

如果您想显示匹配项,请添加第三个grep,例如:

grep -E 'word1|word2' `grep -l word2 $(grep -rl word1 .)`

也可以使用它sed来执行grep功能,也可能用一次扫描就可以完成您想要的操作sed,但我还没有仔细想过。

相关内容