2013-05-08 18 views
5

我想刪除所有的線,3加號:擺脫加號不起作用

+++ 3 plus signs 
+ 1 plus sign 
+++ 3 plus signs 

這裏是我的sed的命令,行開始後逃逸的加號

sed '/^\+\+\+/d' -> This erase all lines 
sed '/^+++/d'  -> This works and show only the 1 plus sign line 

爲什麼?逃避加號有什麼問題嗎?

回答

5

「一個快速評論原始sed不支持」+「元字符。如果使用」-r「命令行選項,GNU sed會啓用擴展正則表達式。

Source

如果你不使用sed -r,那麼你就不必逃避+,因爲它不被視爲元字符。

+2

@Tom值得注意的是,正則表達式有3種流行的語法形式:basic,extended和perl-compatible。普通sed(不帶-r)實現基本形式。 – 2013-05-08 12:46:11