gpt4 book ai didi

regex - 在第一个匹配的地址范围之后,如何让sed退出?

转载 作者:行者123 更新时间:2023-12-03 11:20:58 25 4
gpt4 key购买 nike

我有一个文件:

header
trigger
text1
text2
trigger
text5
trigger
...
trigger
...

我希望sed只在前两次出现的“触发器”之间匹配。所以我尝试了:
sed -n '/trigger/,/trigger/p'

但是,正如sed的手册页所说,这会将两行中的所有匹配项都用“触发”进行匹配。我希望sed在第一场比赛后退出,因此输出为:
trigger
text1
text2
trigger

我该怎么做?

最佳答案

您可以在GNU sed中循环执行此操作:

sed -n '/trigger/{p; :loop n; p; /trigger/q; b loop}'

说明:
  • 当您看到第一个/trigger/时,启动命令块
  • p-打印行
  • :loop-设置名为loop的标签
  • n-获取下一行
  • p-打印行
  • /trigger/q-如果该行与/trigger/相匹配,则退出sed
  • b-跳转到loop
  • 关于regex - 在第一个匹配的地址范围之后,如何让sed退出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20943025/

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