Consertando o ^M em shell script

Uma boa dica para remover caracteres inválidos que aparecem no arquivo que foi lido/salvo em DOS/Windows e agora está sendo lido em Linux/Unix:

Antes, um pouco de história:
Para quem é dos tempos da máquina de escrever, para mudar de linha precisávamos trocar de linha (line feed) e posicionar o rolo da máquina na primeira posição (carriage return).
Em sistemas Unix, não existe o CR (carriage return), apenas a mudança de linha (LF ou Line Feed). Por esta razão, um arquivo do Unix lido em uma máquina DOS/Windows, é algo do tipo:

abcde
abcde
abcde
abcde

Ou seja, o carro não vai para a primeira posição da linha.
Da mesma forma, um arquivo gerado no windows e lido em alguma máquina *nix, fica como:

abcde^M
abcde^M
abcde^M
abcde^M

Fica um caractere estranho no final (o tal do CR e LF).

Para instalar um conversor de formatos “unix to dos” e vice-versa:
$ apt-get install tofrodos

Teremos os binários todos, unix2dos e dos2unix.

Utilizando os binários:

Unix para DOS
unix2dos arquivo.txt

DOS para Unix
dos2unix arquivo.txt

O comando todos converte para o formato de sistemas DOS/Windows.

==========
Fonte: Dicas-l

Leave a Reply

Your email address will not be published. Required fields are marked *