sed -e '/^line 2$/{r file1.txt' -e 'd;}' file2.txt
O script sed é
/^line 2$/{
r file1.txt
d
}
A nova linha após o nome do arquivo file1.txt é obrigatória, então dividi-la em expressões -e separadas na linha de comando faz com que seja mais legível do que
sed '/^line 2$/{r file1.txt
d;}' file2.txt
O script procura uma linha cujo conteúdo seja line 2 . Quando isso for encontrado, o conteúdo de file1.txt será imediatamente enviado e a linha original será excluída.
Usar sed -i fará as alterações na linha em file2.txt (não recomendado).