2013-10-17 57 views
1

我似乎記得一個-E標誌sed將啓用擴展的正則表達式,那麼今天在男子頁看我看到它的存在,但是-E標誌sed的

echo development.properties | sed -E 's/(development.|staging.|qa.|production.)//' 

性能

echo development.properties | sed 's/(development.|staging.|qa.|production.)//' 

development.properties

echo development.properties | sed -r 's/(development.|staging.|qa.|production.)//' 

屬性

因此,它看起來對我來說,-E東西,而且我敢說這是現在-r一個別名,至少這是我想-E是爲(擴展正則表達式)。有沒有改變?看起來它可能仍然支持向後兼容性,或者不支持?

而且,這聽起來像在sed has nothing to do擴展的正則表達式中包含括號內的管道字符範圍,所以爲什麼不替換工作,而無論這些標誌(-E-r)?

回答

3
  1. -E是在你的sed版本即extended regex support
  2. -r別名沒有extended regex支持,square brackets匹配的literal parentheses不是正則表達式分組。