我有关于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
阮
答案 0 :(得分:3)
这是因为d
立即结束该行的处理,没有(默认)打印在脚本结束时。如果您想跳过脚本的其余部分但仍然执行脚本结束操作,请改用b
。默认的b
牧场目标是脚本结束。