Atualmente, existem duas utilitários (dos2unix e unix2dos) que convertem arquivos nos formatos DOS para UNIX e vice-versa. Porém, nada impede que você faça sozinho a conversão de quebras de linha quando o sistema sobre o qual você trabalha não possui estas ferramentas ou impede que elas sejam instaladas. Nesse artigo, veja como fazer isso.
Nos arquivos de texto em Unix, as linhas terminam com um caractere de 'pular linha' representado pelo símbolo '\n' chamado de Line Feed e abreviado como LF.
Nos arquivos de texto em DOS, as linhas também terminam com um caractere de 'pular linha' e que é precedido por um caractere 'parágrafo', representado pelo símbolo '\r', chamado de Carriage Return e abreviado como CR. Dessa forma, cada linha de um arquivo DOS é concluída como a sequência CRLF, ou seja \r\n.
Basta simplesmente apagar o caractere '\r' no final da linha. Ele é representado simbolicamente '^M', obtido pela combinação dos atalhos Ctrl+V e Ctrl+M. Assim, teremos:
sed 's/^M$//' arquivo
Observação: na versão GNU-sed (gsed 3.02.80 ou superior), pode-se utilizar a escrita ASCII:
sed 's/\x0D$//' arquivo
Basta fazer o contrário do comando precedente. A saber, o caractere '^M' será utilizado da mesma maneira (Ctrl+V e Ctrl+M):
sed 's/$/^M/' arquivo
Observação: na versão GNU-sed (gsed 3.02.80 ou superior), pode-se utilizar a escrita simbólica '\r':
sed 's/$/\r/' arquivo
Foto: © man64 - 123RF.com