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

Nosso conteúdo é produzido em colaboração com especialistas em tecnologia da informação sob o comando de Jean-François Pillou, fundador do CCM.net. CCM é um site sobre tecnologia líder em nível internacional e está disponível em 11 idiomas.
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!

Assine nossa newsletter!