gpt4 book ai didi

bash - Sed 范围并删除最后一个匹配行

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

我有这个数据:

One
two
three
Four
five
six
Seven
eight

还有这个命令:

sed -n '/^Four$/,/^[^[:blank:]]/p'

我得到以下输出:

Four
five
six
Seven

如何更改此 sed 表达式以不匹配输出的最后一行?所以理想的输出应该是:

Four
five
six

我已经尝试了很多涉及感叹号的事情,但还没有设法使它正常工作。

最佳答案

使用“do..while()”循环:

sed -n '/^Four$/{:a;p;n;/^[[:blank:]]/ba}'

详情:

/^Four$/ {
:a # define the label "a"
p # print the pattern-space
n # load the next line in the pattern space
/^[[:blank:]]/ba # if the pattern succeeds, go to label "a"
}

关于bash - Sed 范围并删除最后一个匹配行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50746336/

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