Consertando o ^M em shell scripts
| May 21, 2009 | Posted by Marcos Arouca under Tecnologia |
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
Recent Comments