O problema está no echo , pois não fará a coisa certa. Você deve usar aspas duplas em torno da variável ou as novas linhas não serão preservadas:
echo "$message" >Finalinput.txt
Se você quiser, pode fazê-lo de várias formas diferentes, dependendo das suas necessidades. A seguir, o texto é colocado na variável message , mas também é gravado no arquivo de uma só vez:
message="$( sed '/one.*/q' | tee Finalinput.txt )"
O comando sed obterá a entrada do usuário e a transmitirá para tee , que será duplicada, uma vez para Finalinput.txt e uma vez para a variável message .
Se não houver necessidade de manter o texto em uma variável, apenas
sed '/one.*/q' >Finalinput.txt
funcionará tão bem.