Если вы можете использовать awk, вы можете сделать:
gawk '{if ($0 ~ /^@/ ) { print ; getline ; print ; getline ; print "+"}}' INPUTFILE
Таким образом, если gawk увидит @
в начале строки, он будет напечатан, тогда следующая строка будет распечатана и && напечатана, и, наконец, 3-я строка (после @
) и только печать +
.
Если +
находится не в начале строки, вы можете использовать gensub(/\+.*/,"+",$0)
вместо "+"
в последнем print
.
(И если у вас установлен perl
, скорее всего, будет исполняемый файл a2p
, который может преобразовать приведенный выше скрипт awk в perl, если вы хотите ...)
НТН
ОБНОВЛЕНИЕ (на пропущенной 4-й строке):
gawk '{if ($0 ~ /^@/ ) { print ; getline ; print ; getline ; print "+"; getline; print }}' INPUTFILE
Также должна быть напечатана 4-я строка.