指定兩個用逗號分開的規(guī)則表達式,sed 將與所有從匹配第一個規(guī)則表達式的第一行開始,到匹配第二個規(guī)則表達式的行結束(包括該行)的所有行匹配。例如,以下命令將打印從包含 "BEGIN" 的行開始,并且以包含 "END" 的行結束的文本塊:
$ sed -n -e ’/BEGIN/,/END/p’ /my/test/file | more
如果沒發(fā)現(xiàn) "BEGIN",那么將不打印數(shù)據(jù)。如果發(fā)現(xiàn)了 "BEGIN",但是在這之后的所有行中都沒發(fā)現(xiàn) "END",那么將打印所有后續(xù)行。發(fā)生這種情況是因為 sed 面向流的特性 -- 它不知道是否會出現(xiàn) "END"。
sed '/./,/^$/!d' test 的解釋:從非空行開始,包含一個空行的所有行。第一行一定是個非空行。
而cat –s 只是將所有的空行壓縮成一個空行。因此第一行可以是空行。