Como corrigir quebras de linha em arquivos de texto usando Dos2Unix e Unix2Dos

Você já enviou um arquivo de texto criado em um sistema Linux para alguém e eles reclamaram que parecia errado no macOS ou no Windows? Isso pode ser porque esses sistemas lidam com terminações de linha de maneira diferente. Felizmente, isso é fácil de corrigir com alguns utilitários: Dos2Unix e Unix2Dos.

Qual é o problema com terminações de linha?

Uma diferença entre o Windows e o Linux que pode dificultar a troca de arquivos é a maneira como contam as terminações de linha. Isso remonta aos dias em que os computadores usavam máquinas de teletipo para entrada e saída, que eram efetivamente máquinas de escrever automáticas.

Uma nova linha, também chamada de avanço de linha, avança o papel uma linha e o retorno do carro se move para o início da linha. As interfaces de linha de comando seguem esta convenção de interpretação de novas linhas.

O Windows herdou a convenção do MS-DOS de contar uma nova linha e um retorno de carro como uma linha, enquanto o Linux, por sua vez, carregava a tradição do Unix de apenas contar novas linhas como, bem, novas linhas.

Na maioria das vezes, os editores de texto são inteligentes o suficiente para detectar arquivos criados em sistemas diferentes e ajustar a exibição de acordo, mas você ainda pode ter problemas ocasionalmente. Você pode tentar executar um script e o interpretador pode lançar um erro porque espera que as linhas terminem de maneira diferente.

Usando Dos2Unix e Unix2Dos

Felizmente, existem alguns utilitários que permitem converter terminações de linha em arquivos entre formatos. Eles são chamados de Dos2Unix e Unix2Dos .

Embora esses utilitários sejam comuns em muitas instalações do Linux, se eles não estiverem instalados em seu sistema, você pode baixá-los usando o gerenciador de pacotes padrão.

Para converter um arquivo criado em um sistema Windows para Linux, use dos2unix :

 dos2unix file

… onde arquivo é o nome do arquivo que você deseja converter. Este programa irá converter o arquivo de novas linhas DOS para Unix no local, como o nome sugere. Se você deseja converter uma cópia do arquivo, use a opção -n :

 dos2unix -n file1 file2

… onde arquivo1 e arquivo2 são os nomes do arquivo original e do arquivo de saída . O comando unix2dos funciona da mesma maneira e usa os mesmos argumentos.

Uma opção alternativa é usar um editor de texto no Linux ou no Windows para converter arquivos, pois eles também podem detectar e alterar o comportamento de finalização de linha.

Relacionado: Unix vs. Linux: as diferenças entre e por que é importante

Agora seus arquivos de texto parecem certos em qualquer sistema

Com este par de utilitários, você pode ter certeza de que qualquer arquivo de texto funcionará no Windows ou no Linux. Consertar novas linhas agora é mais fácil do que nunca com dos2unix e unix2dos.

No mundo real, os usuários do Linux e do Windows geralmente precisam compartilhar arquivos. Felizmente, é muito fácil fazer isso hoje em dia.