2016-09-05 60 views
3

在Linux上我用這個 'p命令後,多餘的字符',讓[test]線後的兩行:sed的Mac上:

sed -n '/\[test\]/{n;p;n;p}' my-file 

在Mac上,我得到:

sed: 1: "/\\[test\\]/{n;p;n;p}": extra characters at the end of p command. 

是有一個表達式可以在兩個平臺或Mac上運行,必須使用完全不同的命令?

+0

如果將錯誤原樣粘貼,會很有幫助。 – sjsam

回答

6

最後p

sed -n '/\[test\]/{n;p;n;p;}' my-file 

後面添加一個額外的分號(不涉及到Mac版本,在MSYS上也失敗)

3

OSX(BSD)sed需要每個命令終止;或單獨一行。

所以這應該工作:

sed -n '/\[test\]/{n;p;n;p;}' my-file 

甚至這一個將工作:

sed -n '/\[test\]/{ 
n 
p 
n 
p 
}' my-file