Egrep - 搜索多个单词并限制文件类型

时间:2014-07-04 00:30:24

标签: string search grep file-type

我正在尝试使用egrep在网络文件夹中运行搜索,但它无法正常工作。

我正在尝试搜索包含string1和string2的文本文档(仅扩展名为txt的文件):

egrep -wir --include=\*.txt 'string1' * | egrep -wir --include=\*.txt 'string2' * > listofiles.txt

但是,我从具有其他扩展名的文件(例如.php文件)中获得结果。

有谁能告诉我我错过了什么?

谢谢,

艾伦。

1 个答案:

答案 0 :(得分:0)

你将第一个egrep的输出输入第二个egrep,这意味着你要在第一个egrep的输出上,而不是它返回的文件。如果你想要的只是包含string1和string2的文件,一个简单的解决方案是同时运行egreps到同一个文件,然后排序,uniq和再次排序:

egrep -wirl --include=\*.txt 'string1' * > listoffiles.txt
egrep -wirl --include=\*.txt 'string2' * >> listoffiles.txt
sort listoffiles.txt | sort | uniq -c | sort

任何数量为2的东西都是您正在寻找的东西。

注意:egrep' s -l标志会抑制正常输出并仅提供文件名

注意:uniq' s -c标志可以计算出找到该行的次数