繁体   English   中英

grep 在文件 bash

[英]grep the last match of an occurence with the nlines after that in a file bash

请问grep如何在文件bash之后与nlines发生的最后一次匹配? 该文件如下所示,

it is Starting 
line1
line2
ERROR
line3
line4
line5
ERROR
line6
line7
line8
WARNING
line9
ERROR
line10
line11

我想 grep 之后的两行最后一个“警告”。 结果应该是

WARNING
line9
ERROR

我知道grep -A2 "WARNING"可以帮助后面两行的所有WARNINGS ,但是最后一次出现怎么办呢?

使用tac反转文件中行的顺序, grep带有选项-m1最多 1 次匹配, -B2用于匹配前 2 行(前面是因为行是相反的顺序),然后是另一个tac放置原始顺序中的行:

tac in_file | grep -m1 -B2 WARNING | tac

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM