我有这个输入文件:
text1
match
text2
match
text3
我有一个在匹配项前插入一行的命令:
perl -lpe 'print "prepend_me" if /^match$/ && ++$i == 1' text.txt
其输出为:
text1
prepend_me
match
text2
match
text3
现在我想要在匹配后插入一行的命令:
text1
match
append_me
text2
match
text3
我如何获得它?
答案1
您可以将字符串连接与默认$_
变量一起使用:
$ perl -lpe '$_ .= "\nappend_me" if /^match$/ && ++$i == 1' text.txt
text1
match
append_me
text2
match
text3
或者,使用-ne
和显式print
perl -lne 'print; print "append_me" if /^match$/ && ++$i == 1' text.txt