我喜欢在GNU中使用Perl regex引擎grep
:
$ echo FOO | grep -P '(?i)foo'
FOO
我使用它多次,效果很好。
有时我使用awk
它是因为我认为它比bash shell具有更好的正则表达式处理-但是其中的正则表达式awk
与Perl不同。
我使用awk
,gawk
并且找到了不同的regex修饰符awk
。在旅行中,我发现了awk
/的3种不同的正则表达式修饰符gawk
--posix
--traditional
--re-interval
您是否知道awk
像grep
上面的示例那样使用Perl regex的物种?
不,awk不支持Perl RE。awk语言的主要宗旨之一是通过不提供一些简单地做简单事情的结构来保持语言的小巧。这就是他们避免perl遭受的语言膨胀和相关复杂性的方式(有关perl可读性的常见见,请参见http://www.zoitz.com/archives/13)。在这种情况下,虽然某些Perl RE语法使您可以做一些简短的事情,但您不需要特殊的语言构造来完成它们,因为还有其他方法可以对现有构造进行任何所需的操作(也许不在一个RE中或使用一个功能,因此不那么简短),因此awk不支持它们。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句