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