說明:藍色=命令名稱
淺綠=命令參數
淺藍=選項
紫色=目錄
系統環境:CentOS 5.8 x86_64
內容如下:
650) this.width=650;" border=0>
sed語句:sed '/./{H;$!d};x;/aa/d' 1
結果如圖:
650) this.width=650;" border=0>
解析:
650) this.width=650;" border=0>
第一行不是空,被/./匹配,放入保留空間,執行d,在讀取下一行進入循環,知道讀取的下一行不被/./匹配,不執行d,循環結束。此時保留空間內的內容為:
null\naa\nbb\ncc\n
繼續讀取下一行進行第二個循環,和第一次一樣不再詳細解釋。
第三次循環關鍵在 $!d 最後一行沒有執行 d 表示循環結束,執行了一側完整的循環。若沒有 $!d 則最後執行 d 然後下一行為空,無法讀取,循環沒有順利完成,所以最後的一次循環不會被真正的保留到保留空間中,最後的結果如圖:
650) this.width=650;" border=0>