簡體   English   中英

bash sed with / ^ $ / d; G命令

[英]bash sed with /^$/d;G command

我有關於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代替。 默認的b ranch目標是腳本結束。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM