3
我的sed腳本是這樣的:sed的:H和d行爲
# script.sed
1,3H
1,3g
3D
當我運行它,我得到如下:
$ seq 5 | sed -f script.sed
1
1
2
4
5
然而,這似乎是我錯了。在第3行中,一旦執行了d命令,圖案空間具有
1
2
3
當重新啓動週期,H應該設置在保持空間:
<empty_line>
1
2
3
1
2
3
然後,克應設置圖案空間到相同的內容。 D將刪除第一條(空的)行。每次循環重新啓動時,保持空間將有效地增加一倍。因此,這應該導致無限循環。
我錯過了什麼?
在第3行中的'D'命令的重複刪除高達並且包括在模式空間的每一行,直到沒有行被保留。該命令基本上停留在第3行,直到所有內容都被刪除。 – potong
@potong不正確。如果我在它之前包含'=',我可以看到多行打印行號(3)。所以,它從頂部開始。 – euphoria83
但是第3行永遠不會被打印,因爲當執行'D'命令時,sed循環的正常打印部分永遠不會到達。嘗試插入'3p'命令或'3P'。 – potong