De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 17 de junho de 2016
As convenções de fim de linha em sistemas operacionais podem trazer aborrecimentos quando um arquivo criado em sistemas Windows é levado para um sistema GNU/Linux, e vice-versa. Basicamente, o que temos no final de uma linha é um ou mais caracteres que nos levam para a próxima linha. A nomenclatura usada é dos tempos das máquinas de escrever, em que mudamos de linha (line feed, ou LF) e voltamos a máquina para a posição inicial (carriage return, ou CR).
Em sistemas *nix o fim de linha é assinalado pelo caracter line feed, ou seja, não existe um posicionamento na primeira coluna da próxima linha. Ao levar um arquivo deste tipo para sistemas Windows, temos algo do tipo:
abcde abcde abcde ...
Da mesma forma, ao levarmos arquivos criados em sistemas Windows para sistemas *nix, temos um caractere adicional no fim da linha (carriage return), que precisamos remover.
O comando recode é um pequeno utilitário que realiza diversos tipos de conversão, como por exemplo, a mudança de codificação, e as conversões entre sistemas. O problema é a sintaxe meio complicada, mas nada que alguns aliases não resolvam.
Com o comando recode podemos converter arquivos entre diversos formatos:
recode dos/CR-LF..l1 arquivo.txt
recode l1..windows-1250
recode l1..dos/CR-LF
Para simplificar, podemos criar alguns aliases:
alias dos2unix='recode dos/CR-LF..l1' alias unix2win='recode l1..windows-1250' alias unix2dos='recode l1..dos/CR-LF'
Coloque as linhas acima no arquivo .bashrc
e você não precisa mais se preocupar
com a sintaxe do comando.
Para instalar o comando recode em sistemas Debian GNU/Linux e derivados, digite:
sudo apt-get install recodeError: No site found with the domain 's2.dicas-l.com.br' (Learn more)