我阅读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。 –