如何使用awk打印出最后的图案范围? [英] How to print out the last patterns range using awk?

查看:92
本文介绍了如何使用awk打印出最后的图案范围?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的文件是这样的:

/开始模式/
首个比赛
/end模式/

/begin pattern/
first match
/end pattern/

其他文字

/开始模式/
第二次比赛
/end模式/

/begin pattern/
second match
/end pattern/

其他文字

/开始模式/
这是我 想要打印
/结束 模式/
其他文字

/begin pattern/
This is the one I want to print out
/end pattern/
other text

如何使用awk打印出最后一场比赛?我只知道如何打印所有这些匹配项.

How can I print out the last match using awk? I just know about how to print out all these matches.

推荐答案

awk 'END { print r } 
/end pattern/ { f = x }
/begin pattern/ { f = 1; r = x }
f++ > 1 { r = r ? r RS $0 : $0 }
' infile 

这篇关于如何使用awk打印出最后的图案范围?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆