grep前n个跨文件匹配

时间:2012-01-25 02:56:22

标签: grep

我正在使用grep来提取一组文件中的行:

grep somestring *.log

是否可以限制每个文件的最大匹配数?理想情况下,我只需从每个* .log文件中打印出n行。

2 个答案:

答案 0 :(得分:10)

要限制每个文件11行:

grep -m11 somestring *.log

答案 1 :(得分:2)

以下是使用awk模拟它的另一种方法:

awk 'f==10{f=0; nextfile; exit} /regex/{++f; print FILENAME":"$0}' *.log

说明:

  • f==10 : f是我们设置的标志,并检查它的值是否等于10.您可以根据行数配置它 你希望匹配。

  • nextfile : 将处理移至下一个文件。

  • exit : 突破awk

  • /regex/ : 您正在搜索regexpattern

  • {++f;print FILENAME":"$0} : 我们递增标记并打印文件名和行。