У меня есть этот входной файл:
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
Как мне это получить?
Вы можете использовать конкатенацию строк с переменной по умолчанию $_
:
$ 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