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

Julho 2017




Preâmbulo


Existe utilitários(dos2unix e unix2dos) cumpre muito bem esta tarefa, mas nada impede que você faça sozinho, às vezes, quando o sistema sobre o qual você trabalha não possui estas ferramentas e que você esteja impossibilitado de instalar.

O que é preciso


Os arquivos texto no Unix (e seus descendentes) terminem sua linha por um caráter « salto de linha », representado por um símbolo "\n" (chamado Line Feed e escrito LF, code ASCII = 0A).

Os arquivos texto no DOS ( e seus descendentes) terminam também sal linha por um caráter "salto de linha", precedido de um caráter quebra de linha, representado pelo símbolo "\r" (chamado Carriage Return e escrito CR, code ASCII 0D). Assim, cada linha de um arquivo DOS se termina pela sequência CRLF, seja \r\n.

Conversão DOS para UNIX


IBasta simplesmente apagar o caráter "\r" (quebra de linha) no final da linha.
O caráter "\r" (quebra de linha) está representado simbolicamente "^M", que se obtém pela seguinte sequência de teclas "CTRL-V" + "CTRL-M".
sed 's/^M$//' arquivos

Nota

Com a versão GNU-sed (gsed 3.02.80 e superior), pode-se utilizar a escrita ASCII :
sed 's/\x0D$//' fichier

Conversão UNIX para DOS


Basta fazer o contrário do comando precedente, à saber (o caráter "^M" sendo digitado da mesma maneira (CTRL-V + CTRL-M)) :
sed 's/$/^M/' fichier

Nota :

Com a versão GNU-sed (gsed 3.02.80 e superior), pode-se utilizar a notação simbólica "\r":
sed 's/$/\r/' arquivo


Tradução feita por Ana Spadari

Veja também

Artigo original publicado por . Tradução feita por ninha25. Última modificação: 26 de abril de 2011 às 05:38 por ninha25.
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.