我想列出grep -r
同时包含两个关键字(不一定在同一行)的文件(使用):word1
,word2
。
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
,但我还没有仔细想过。