什么是 perl 的等价物 grep -o 的一个衬里



我的问题很简单,因为我的标题说"perl 的 grep -o 的等价一行是什么?那是只打印匹配的正则表达式而不是整行?

perl -pe some_option?? 'm/regex/' file

如果你想做最少的工作量,改变

grep -o -P 'PATTERN' file

perl -nle'print $& if m{PATTERN}' file

所以从

grep -o -P '(?<=foo)bar(?=baz)' file

你会得到:

perl -nle'print $& if m{(?<=foo)bar(?=baz)}' file

但是,使用捕获可能更简单。

perl -nle'print $1 if /foo(bar)baz/' file

您可以更改代码:

perl -ne 'if(/(regex)/) {print "$1n"}' file
perl -nE 'say $& while /regex/g' file

最新更新