【发布时间】:2015-04-24 09:24:13
【问题描述】:
我想匹配一个多行正则表达式并只打印匹配的行:
$ cat test.txt
line1
line2
line3
$ perl -ne 'print if /line2.line3/s' test.txt
$
这个正则表达式实际上匹配line2\nline3,但它没有被打印出来。 regex101 verifies 表示匹配。
使用命令开关0777 会打印匹配的行,但也会打印不匹配的行:
$ perl -0777 -ne 'print if /line2.line3/s' test.txt
line1
line2
line3
在替换正则表达式中使用0777 可以按预期工作:
$ perl -0777 -pe 's/line2.line3/replaced/s' test.txt
line1
replaced
我想了解是否可以只打印与多行正则表达式匹配的行?
【问题讨论】: