在param匹配后立即通过grep停止搜索目录

时间:2010-06-17 10:08:27

标签: bash grep

我使用以下命令在我的脚本中找到/ var some param

grep -R“param”/ var / * 2> / dev / null | grep -wq“param”

我的问题是:在grep中找到文件中的param grep继续搜索,直到/ var / *下的所有搜索都完成

如何在grep匹配参数词后立即执行停止

例如,当我运行: grep -R“param”/ var / * 2> / dev / null | grep -wq“param”

grep在一秒钟之后找到参数。

但是grep继续在其他文件上搜索其他相同的参数并且花费将近30秒

如何在参数匹配后立即停止grep?

THX

4 个答案:

答案 0 :(得分:1)

你可以使用grep -m 1在第一场比赛后停止

答案 1 :(得分:0)

这样:

grep -R“param”/ var / * 2> / dev / null | grep -wq“param”|头-n 1

答案 2 :(得分:0)

如果您使用的是GNU grep,请尝试以下方法:

  -m, --max-count=NUM       stop after NUM matches

答案 3 :(得分:0)

grep有一个-m, - max-count选项:

$ grep -R "param" /var/* 2>/dev/null |grep -wq -m1 "param"

问题:为什么双重grep?如果你正在使用grep递归,为什么要尝试扩展?还要考虑-s到无声的烦人错误信息(我建议alto使用-n来打印匹配行,但对于-q似乎你不想输出):

$ grep -qsRw -m1 "param" /var