我有多行
QQQQl123
hsdhjhksd
QQQQl234
ajkdkjsdh
QQQQl564
我要打印所有匹配的QQQQl [0-9] +
喜欢
QQQQl123
QQQQl234
QQQQl564
如何使用perl做到这一点
我尝试过:
$ perl -0777pe '/QQQQl[0-9]+/' filename
什么也没显示
答案 0 :(得分:1)
perl -we 'while(<>){ next unless $_=~/QQQQl[0-9]+/; print $_; }' < filename
答案 1 :(得分:0)
perl -ne 'print if /QQQQl[0-9]+/' filename
或者,如果由于某些原因您坚持使用-0777
,则可以这样做
perl -0777nE 'say for /QQQQl[0-9]+/g' filename
(或用print "$_\n"
代替say
)
您的代码不起作用,因为/QQQQl[0-9]+/
返回true是因为$_
确实包含该模式,但是您从未要求Perl根据该返回值执行任何操作。
-n
比-p
更可取,因为您不想打印每一行,而是只打印几行(-p
自动打印每一行,所以您很少可以做到)。