如何在文件列表中搜索同一行中存在的多个值?

时间:2012-06-17 22:26:18

标签: command-line grep

我正在尝试在包含大量html文件的一个目录中进行搜索,以查找包含同一行上的确切值的那些文件。这应该有效:

grep -iwc 'word1' -sl | xargs grep -iwc 'word2' -s

但这一次只适用于一个文件。我试过这样的事情:

find . -iname '*html' | xargs grep -iwc 'word1' -sl | xargs grep -iwc 'word2' -s

但是这似乎显示包含这两个值中的任何一个的文件,所以即使是那些不在同一行上的文件。

输出应该只是文件名和出现次数,如:

file.html:2

如果可以将这2个greps分组?或者另一种方法来进行搜索?

1 个答案:

答案 0 :(得分:0)

扩展的正则表达式可能有所帮助。这样的事可能呢?

find . -iname '*html' | xargs egrep -iwl '(word1.*word2|word2.*word1)'

由于您只需要两个单词,因此列出所有订购方式并不难。