我的问题很简单,因为我的标题说"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