我正在尝试使用egrep在网络文件夹中运行搜索,但它无法正常工作。
我正在尝试搜索包含string1和string2的文本文档(仅扩展名为txt的文件):
egrep -wir --include=\*.txt 'string1' * | egrep -wir --include=\*.txt 'string2' * > listofiles.txt
但是,我从具有其他扩展名的文件(例如.php文件)中获得结果。
有谁能告诉我我错过了什么?
谢谢,
艾伦。
答案 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标志可以计算出找到该行的次数