Estou assumindo que "duas novas linhas" significam \n\n
e não duas linhas em branco seguindo a linha com [FACT]
(que seriam três novas linhas). De qualquer forma, o sed funcionará, uma vez que remove apenas a primeira nova linha após [FACT]
.
$ echo -e '[FACT]\n\nend'
[FACT]
end
Isso irá procurar as linhas que terminam em [FACT]
e para cada linha que corresponda usamos N
para acrescentar a próxima linha ao espaço padrão atual, mantendo a nova linha que sed geralmente remove do espaço padrão.
$ echo -e '[FACT]\n\nend' |sed '/\[FACT\]$/ { N; s/\n// }'
[FACT]
end
Se [FACT]
não precisa estar exatamente no final da linha, remova o $
do comando.
Por favor, note que isso tecnicamente retira a nova linha do final da linha que contém [FACT]
, então concatena tecnicamente duas linhas em uma:
$ echo -e '[FACT]\nhelp\nend'
[FACT]
help
end
$ echo -e '[FACT]\nhelp\nend' |sed '/\[FACT\]$/ { N; s/\n// }'
[FACT]help
end