Posted on 2010-01-19 10:07
Prayer 閱讀(1340)
評論(0) 編輯 收藏 引用 所屬分類:
Shell
指定兩個用逗號分開的規則表達式,sed 將與所有從匹配第一個規則表達式的第一行開始,到匹配第二個規則表達式的行結束(包括該行)的所有行匹配。例如,以下命令將打印從包含 "BEGIN" 的行開始,并且以包含 "END" 的行結束的文本塊:
$ sed -n -e ’/BEGIN/,/END/p’ /my/test/file | more
如果沒發現 "BEGIN",那么將不打印數據。如果發現了 "BEGIN",但是在這之后的所有行中都沒發現 "END",那么將打印所有后續行。發生這種情況是因為 sed 面向流的特性 -- 它不知道是否會出現 "END"。
sed '/./,/^$/!d' test 的解釋:從非空行開始,包含一個空行的所有行。第一行一定是個非空行。
而cat –s 只是將所有的空行壓縮成一個空行。因此第一行可以是空行。