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.492 ]
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
Instalar MP3 (e outros formatos) no ubuntu dapper automaticamente
Comparação entre os escalonadores BFQ e MQ-Deadline (acesso a disco) no Arch e Debian
Conciliando o uso da ZRAM e SWAP em disco na sua máquina
Servidor de Backup com Ubuntu Server 24.04 LTS, RAID e Duplicati (Dell PowerEdge T420)
Visualizar câmeras IP ONVIF no Linux sem necessidade de instalar aplicativos
Converter os repositórios Debian para o novo formato com as chaves
Instalando Spotify no Debian 13
Realizar overclock no Miyoo Mini (plus ou normal)
linux mint reconhece microfone de lapela como fone de ouvido sem micro... (6)
E aí? O Warsaw já está funcionando no Debian 13? (6)
Problema com o Centro de Aplicativos Ubuntu 25.04 (1)