我閱讀this regex tutorial和它說: < and >在sed
的模式來搜索單詞 「the」 將是 「\ < [TT]他>」。
怎麼這不輸出bar bar
?
○ → echo "foo bar" | sed -E 's/\<foo\>/bar/'
foo bar
能\<
和\>
在sed使用?
我閱讀this regex tutorial和它說: < and >在sed
的模式來搜索單詞 「the」 將是 「\ < [TT]他>」。
怎麼這不輸出bar bar
?
○ → echo "foo bar" | sed -E 's/\<foo\>/bar/'
foo bar
能\<
和\>
在sed使用?
\<
和\>
用於字邊界,但它是平臺相關的。
在OSX sed
你需要使用[[:<:]]
和[[:>:]]
爲同:
echo "foo food bar" | sed -E 's/[[:<:]]foo[[:>:]]/bar/'
bar food bar
但是,如果你能使用brew
包安裝程序安裝在OSX gnu sed
那麼你可以使用:
echo "foo food bar" | gsed -E 's/\bfoo\b/bar/'
bar food bar
https://stackoverflow.com/a/5734237/3832970 –
''[[:<:]]'和'[[:>:]]'的文檔可以在'man re_format'中找到,它記錄了正則表達式被'sed'接受。 – chepner
[它在這裏](https://ideone.com/n1YDfD)。 –
@WiktorStribiżew奇怪。我正在使用OSX –
然後,也許BSD sed不能以這種方式工作,本教程是針對GNU sed。 –