read
também diz:
The terminating
<newline>
(if any) shall be removed from the input and the results shall be split into fields as in the shell for the results of parameter expansion
Ele também documenta muitas exceções com base nos parâmetros que você passa para ele sobre como lidar com novas linhas. Ler toda a man page é necessário se tais exceções forem importantes para você.
Se você quiser ignorar certos caracteres, como \r
, isso pode ser feito facilmente com sed
:
echo "hi\r\nI am a script" | sed "s/\r//g"
Para tornar a substituição mais óbvia, você pode substituí-la por algo como:
echo "hi\r\nI am a script" | sed "s/\r/,/g"
Também é importante observar que usar o parâmetro -e
para echo
faz com que ele interprete as combinações de caracteres especiais invertidas que na verdade não correspondem a um caractere de alimentação de linha real presente na entrada.