gpt4 book ai didi

regex - 在与 sed 的最后一场比赛之后追加行

转载 作者:行者123 更新时间:2023-11-29 08:51:34 24 4
gpt4 key购买 nike

假设我有以下输入。

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

不一定保证顺序,但是这个例子中的顺序编号只是为了表明在某些文本行之前有一个可搜索的关键字,并且它们在输入时通常组合在一起,但不能保证。

最佳答案

这可能对你有用(GNU sed):

sed '1h;1!H;$!d;x;s/.*thing4[^\n]*/&\nfoo/' file

将文件 Slurp 到内存中,并使用正则表达式的贪婪将所需的字符串放在最后一次出现所需模式之后。

一个更高效(使用最少的内存)但更难理解的是:

sed '/thing4[^\n]*/,$!b;//{x;//p;g};//!H;$!d;x;s//&\nfoo/' file

解释留给读者自己琢磨。

关于regex - 在与 sed 的最后一场比赛之后追加行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37909388/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com