gpt4 book ai didi

linux - bash sed 与/^$/d;G 命令

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:54:40 25 4
gpt4 key购买 nike

我有一个关于 sed 的问题:
假设 file.txt 中的内容是这样的:

one


two
three

然后我跑:

sed '/^$/d;G' file.txt

我觉得这个过程应该是这样的:

for line in file {
pattern_space = line
if (pattern_space == "\n") then pattern_space = ""
pattern_space = pattern_space + "\n" + hold_space
print pattern_space
}

所以,我认为结果应该是这样的:(空行不变,非空行后跟一行)

one



two

three

但是,现实是:

one

two

three

就好像我运行了sed '/^$/d' file.txt | sed G,我对此感到困惑。
你能告诉我什么是正确的过程吗?我有什么误解吗?
/br

最佳答案

这是因为 d 立即结束了该行的处理,没有(默认)在脚本结束时打印。如果您想跳过脚本的其余部分但仍执行脚本结束操作,请改用 b。默认的 branch 目标是脚本结束。

关于linux - bash sed 与/^$/d;G 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22088506/

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