A menos que você tenha uma necessidade específica de usar o shell para isso, a resposta de terdon fornece melhores alternativas.
Como você está usando bash
(como indicado no shebang do script), você pode usar a opção -n
para echo:
echo -n "${line} " >> output.txt
echo "$line" | cut -d'_' -f 1 >> output.txt
Ou você pode usar recursos de shell para processar a linha sem usar cut
:
echo "${line} ${line%%_*}" >> output.txt
(substituindo as duas linhas echo
).
Como alternativa, printf
também funcionaria, em qualquer shell POSIX , e geralmente é melhor (veja Por que printf é melhor que echo? para detalhes):
printf "%s " "${line}" >> output.txt
echo "$line" | cut -d'_' -f 1 >> output.txt
ou
printf "%s %s\n" "${line}" "${line%%_*}" >> output.txt
(Estritamente falando, na planície /bin/sh
, echo -n
não é portátil Como você está explicitamente usando bash
, tudo bem.)