如何在匹配多个字符串字符串的目录中搜索文件

时间:2015-07-18 21:15:18

标签: search grep find

正在寻找一个命令或者一个脚本来搜索包含多行字符串的文件并显示文件名

示例 在/ var / tmp /中有多个文件 每个文件将包含以下

文件1:
约翰
2015Oct
FOO
戴尔

file2的:
戴夫
2014Sept
三星

file3的:
约翰
2014Oct
戴尔

等等

如何找到包含John和2015的文件?

3 个答案:

答案 0 :(得分:0)

在grep正则表达式中,您可以使用|进行OR。仅举例:

grep -rnw . -e "head" 

它选择从当前目录递归的所有文件,其中包含单词head

grep -rnw . -e "head\|footer" 

相同的命令,但它会选择包含headfooter字样的文件。

注意:反斜杠需要转义。您还可以在正则表达式中使用egrep而不使用反斜杠。

答案 1 :(得分:0)

这就是你想要的,如果你有更多的"和#34;你可以通过更多的管道继续链接它。约束(包含 x y z ... 的文件):

<div id="maincontainer">
    <div id="leftcolumn"></div>
    <div id="contentwrapper"></div>
</div>

-l <​​/ strong>:这是一个小写的L,意思是列出包含匹配项的文件名,而不是默认的逐行匹配输出。

* .txt :显然,请将此参数替换为您要查找的匹配文件名列表所需的内容。

xargs :使用指定参数调用grep,以及从前面grep的输出中输入的文件名。

答案 2 :(得分:0)

谢谢,两者都有效,但是当涉及到包含成千上万个文件的文件夹时,我开始得到参数太长的错误

grep -l“150728”* | xargs grep -l“Chri”

-bash:/ bin / grep:参数列表太长