我正在使用grep来提取一组文件中的行:
grep somestring *.log
是否可以限制每个文件的最大匹配数?理想情况下,我只需从每个* .log文件中打印出n行。
答案 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/ :
您正在搜索regex
或pattern
。
{++f;print FILENAME":"$0} :
我们递增标记并打印文件名和行。