我在 Windows 上,但我想我的问题仍然正确地放在这里。
C:\Users\User>grep --version
GNU grep 2.6.3
C:\Users\User>sed --version
GNU sed version 4.2.1
Run Code Online (Sandbox Code Playgroud)
我注意到以下工作(输出here
):
echo here | grep -E "\w+"
echo here | grep -E "[her]+"
Run Code Online (Sandbox Code Playgroud)
但是,这不起作用(不输出任何内容):
echo here | grep -E "[\w]+"
Run Code Online (Sandbox Code Playgroud)
这再次执行(输出here
):
echo here | grep -P "[\w]+"
Run Code Online (Sandbox Code Playgroud)
[\w]
我认为这是 Perl 正则表达式特有的东西。那是对的吗?
所以,让我们谈谈sed
。这有效(输出gone
):
echo here | sed -r "s/\w+/gone/"
echo here | sed -r "s/[her]+/gone/"
Run Code Online (Sandbox Code Playgroud)
同样,这不会(输出here
):
echo here | sed -r "s/[\w]+/gone/"
Run Code Online (Sandbox Code Playgroud)
现在,我如何为 sed 激活 Perl 正则表达式——有什么办法吗?