我们假设我有以下输入.
Header thing0 some info thing4 some info thing4 some info thing4 some info thing2 some info thing2 some info thing3 some info
现在,我想能够像这样在“thing4”的最后一次成功比赛中追加“foo”.
Header thing0 some info thing4 some info thing4 some info thing4 some info foo thing2 some info thing2 some info thing3 some info
订单不一定得到保证,但此示例中的顺序编号只是为了表明在某些文本行之前有一个可搜索的关键字,并且它们通常在输入中组合在一起,但不能保证.
使用单个awk,您可以:
awk 'FNR==NR{ if (/thing4/) p=NR; next} 1; FNR==p{ print "foo" }' file file Header thing0 some info thing4 some info thing4 some info thing4 some info foo thing2 some info thing2 some info thing3 some info
早期解决方案:您可以使用tac awk tac:
tac file | awk '!p && /thing4/{print "foo"; p=1} 1' | tac
原文地址:https://www.jb51.cc/bash/384859.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。