找到一個子字符串(一個字符串前後是特定字符串)的正確語法是什麼不是匹配特定模式?sed正則表達式和子字符串否定
例如,我想利用其與開始BEGIN_
所有子,端與_END
和是不等於FOO
之間的子串;並用格式「(內部子字符串)」替換整個子字符串。下面將匹配:
BEGIN_bar_END
- >(bar)
BEGIN_buz_END
- >(buz)
BEGIN_ihfd8f398IHFf9f39_END
- >(ihfd8f398IHFf9f39)
但BEGIN_FOO_END
將不匹配。
我已經打得四處以下,但似乎無法找到正確的語法:
sed -e 's/BEGIN_(^FOO)_END/($1)/g'
sed -e 's/BEGIN_([^FOO])_END/($1)/g'
sed -e 's/BEGIN_(?!FOO)_END/($1)/g'
sed -e 's/BEGIN_(!FOO)_END/($1)/g'
sed -e 's/BEGIN_(FOO)!_END/($1)/g'
sed -e 's/BEGIN_!(FOO)_END/($1)/g'
作爲一個說明,與全行打交道時,這可以使用''實現!http://www.grymoire.com/Unix/Sed.html#uh-32 – Zenexer 2013-05-23 02:52:13