Script - muda conteúdo de arquivos texto de iso-8859-1 para utf8 recursivamente
Publicado por Daniel Ribeiro da Silva (última atualização em 19/06/2011)
[ Hits: 7.543 ]
Homepage: http://danielbr-news.blogspot.com/
Download fix_inside_texfile_iso2utf8.sh
Como utf8 é o padrão mais adotado ultimamente e o windows tema em manter um padrão próprio (podemos chamar isso de padrão?!), resolvi fazer esse script para me ajudar no dia a dia:
A partir do diretório atual, vai corrigindo o conteúdo dos arquivos de iso-8859-1 para utf8, e em arquivos html muda também o campo charset para utf8, e nos xml muda também o campo encoding para utf8.
Vou postar também o link de outro script que muda os nomes de arquivos e diretórios de iso-8859-1 para utf8. Afinal, mudar somente o conteúdo dos arquivos não é suficiente.
[]s
Daniel Ribeiro
http://danielbr-news.blogspot.com
http://danielbr-dev.blogspot.com
#!/bin/bash
IS_OK_CHARCODE (){
   for i in *
   do
      filetype=$(file -bi $i)
      
      resultado_text=$( echo $filetype | grep text )
      if [ "$resultado_text" == "" ] ;
      then
         #echo " O arquivo $i nao eh de texto:"
         #echo $resultado_text
         
         continue
      fi
            
      resultado_utf=$( echo $filetype | grep utf )
      if [ "$resultado_utf" != "" ] ;
      then
         #echo " O arquivo $i estah ok em UTF:"
         #echo $resultado_utf
         
         continue
      fi
      
      resultado_us=$( echo $filetype | grep us-ascii )
      if [ "$resultado_us" != "" ] ;
      then
         #echo " O arquivo $i estah ok em formato US"
         #echo $resultado_us
         
         continue
      fi
      
      resultado_iso8859=$( echo $filetype | grep 8859 )
      if [ "$resultado_iso8859" != "" ] ;
                then
                        #echo " O arquivo $i estah problematico no formato iso-8859:"
                        #echo $resultado_iso8859
         echo "Processando $i do dir: $( pwd )"
         iconv -f iso-8859-1 -t utf-8 $i > utf8file.new
         mv utf8file.new $i
         resultado_html=$( echo $filetype | grep htm )
         if [ "$resultado_iso8859" != "" ] ;
         then
            sed -i -e "s/charset=iso-8859-1/charset=UTF-8/g" $i        
                           sed -i -e "s/charset=ISO-8859-1/charset=UTF-8/g" $i 
         fi
         resultado_xml=$( echo $filetype | grep xml )
                        if [ "$resultado_iso8859" != "" ] ;
                        then
            sed -i -e "s/encoding=iso-8859-1/encoding=UTF-8/g" $i      
                           sed -i -e "s/encoding=ISO-8859-1/encoding=UTF-8/g" $i
                        fi
         
         continue
                fi
      
      #if [ $teste == "false" ] ;
      #then
      #   echo " O arquivo $i estah em um formato imprevisto:"
      #   echo $filetype # pode ser binario e por ai vai
      #fi
   done
}
PROCESSA_DIR(){
   
   diretorios=$( find ./ -type d )
        ROOT=$( pwd )
   
   SAVEIFS=$IFS
   IFS=$(echo -en "\n\b")
        for d in $diretorios
        do
                #echo "--- Process $d ---"
      cd "$d"
      IS_OK_CHARCODE
      #echo "------------------"
      cd "$ROOT"
        done
   IFS=$SAVEIFS
}
PROCESSA_DIR
Configurar o Ubuntu para instalar drivers NVIDIA
Script de backup e envio via SSH
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Atualizando o Fedora 42 para 43
Como saber se o seu e-mail já teve a senha vazada?
Como descobrir se a sua senha já foi vazada na internet?
E aí? O Warsaw já está funcionando no Debian 13? (11)
copiar library para diretorio /usr/share/..... su com Falha na a... (1)
Problema em SSD ao dar boot LinuxMint LMDE FAYE 64 (3)









