Para remover caracteres de nova linha, é tr -d '\n' < file
. No entanto, para unir todas as linhas, isso é paste -sd 'tr -d '\n'
' file
.
awk
produz saída sem texto, pois não termina a linha com um caractere de nova linha.
Para remover todos os caracteres CR, você pode fazer:
tr -d '\r' < file | paste -sd 'CR=$(printf '\r')
sed "s/$CR\$//" < file | paste -sd 'awk '{gsub(/\r$/, ""); printf "%s", $0}
END {if (NR) print ""}' < file
' -
' -
Para remover apenas os caracteres CR que estão no final das linhas:
dos2unix < file | paste -sd 'tr -d '\r' < file | paste -sd 'CR=$(printf '\r')
sed "s/$CR\$//" < file | paste -sd 'awk '{gsub(/\r$/, ""); printf "%s", $0}
END {if (NR) print ""}' < file
' -
' -
' -
Ou use dos2unix
para tudo:
dos2unix < file | paste -sd '%pre%' -
Ou use %code% (o que removeria os CRs à direita e também corrigiria alguns outros problemas com arquivos de texto do Microsoft OSes):
%pre%