我在Windows上,但我想我的问题仍然正确地放在这里。
C:\Users\User>grep --version
GNU grep 2.6.3
C:\Users\User>sed --version
GNU sed version 4.2.1
我注意到以下工作原理(输出here
):
echo here | grep -E "\w+"
echo here | grep -E "[her]+"
但是,这不起作用(不输出任何内容):
echo here | grep -E "[\w]+"
再次这样做(输出here
):
echo here | grep -P "[\w]+"
我想这[\w]
是Perl正则表达式特有的。那是对的吗?
所以,让我们谈谈sed
。这有效(输出gone
):
echo here | sed -r "s/\w+/gone/"
echo here | sed -r "s/[her]+/gone/"
再次,这不(输出here
):
echo here | sed -r "s/[\w]+/gone/"
现在,我如何激活sed的Perl正则表达式-有什么办法吗?
[_[:alnum:]]
是一个很好的解决办法,让我把它扩大,就像[\w/]
([_[:alnum:]/]
在这种情况下)。