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.