Linux slogan
Visite também: Segurança Linux · BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Geraline no SLACK
Por pop_lamen
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha


Dica

Como trocar o encode de ISO para UTF-8 e trocar as quebras de linha (EOL) de formato Windows para Unix
Linux user
Publicado por Felipe Cardoso Martins em 06/08/2010

Login: macafe, 69744 pontos | Blog: http://www.linkedin.com/in/felipecardosomartins
[ Hits: 3210 ]

Como trocar o encode de ISO para UTF-8 e trocar as quebras de linha (EOL) de formato Windows para Unix

Esta dica é útil para converter projetos desenvolvidos em Windows para ambientes *NIX em geral...

Primeiro teste sua busca pelos arquivos que pretende afetar:

$ find -name \*.php

Viu o resultado? É isto de fato que deseja afetar? Ok, vamos converter:

$ for i in $(find -name \*.php); do

A linha abaixo vai trocar o encode do arquivo e redirecionar o resultado para um arquivo temporário:

   iconv $i -f iso-8859-1 -t utf8 -o $i.2

A linha abaixo vai trocar as quebras de linha de Windows para Unix do arquivo temporário e redirecionar o resultado para o arquivo original:

    awk '{ sub("\r$", ""); print }' $i.2 > $i

done


Outras dicas deste autor
Nenhuma dica encontrada.

Leitura recomendada
   Dica Linux recomendada Controlando nova interface com HTB + controle de download com upload automático por usuário
   Dica Linux recomendada Exibindo arquivos OpenOffice sem ter o OpenOffice
   Dica Linux recomendada Tudo sobre aMSN no Slackware
   Dica Linux recomendada Como converter uma imagem de CD do Nero (.nrg) para ISO no Ubuntu/Debian
   Dica Linux recomendada Instalação de novos recursos (plugins) para o CACTI (Debian)

Comentários
[1] Comentário enviado por Tulio.Hoffimann em 06/08/2010 - 10:04h:

Boa dica Felipe, mas vale lembrar que se você for usar "for i in $(find -name \*.php); do" , você estará se limitando a arquivos que não contem espaços, já que o "find" retornará uma lista com espaços e o "for" separa os nomes também pelo espaço.

Ou seja, se você tiver o nome "Meu arquivo.php" ele será tratado como "Meu" e "arquivo.php"... O melhor a se fazer nesse caso seria um simples:

for i in *.php; do

[2] Comentário enviado por macafe em 11/08/2010 - 22:41h:

Olá Tulio, muito bem lembrado... para resolver este problema de arquivos com espaço no nome achei estes links:

http://www.cyberciti.biz/tips/handling-filenames-with-spaces-in-bash.html
http://blog.cidandrade.pro.br/tecnologia/shell-scripts-espaco-nome-arquivos/

[]'s


Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.