0
Obrigado

Algumas palavras de agradecimento nunca são demais.

Sed - Converter quebras de linha DOS (CRLF) / UNIX (LF)

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.




O que é preciso

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.

Conversão DOS para UNIX

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

Conversão UNIX para DOS

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
Veja também
Este documento, intitulado 'Sed - Converter quebras de linha DOS (CRLF) / UNIX (LF)', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.

Assine nossa newsletter!

Receba toda semana o melhor conteúdo

Assine nossa newsletter!