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.652 ]
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 AWX (container) em CentOS 7
Faz uma busca no Google e abre o primeiro hit (Estou com Sorte)
verificar os maiores arquivos no HD
Baby Percent - Converte Semanas da Gestação em Porcentagem
Cria cabeçalhos para shell scripts
Porque Gentoo semi-binário atualmente (desabafo)
A combinação de WMs com compositores feitos por fora
Audacious, VLC e QMMP - que saudades do XMMS
SUNO OpenSource: Crie um servidor de gerador de música com IA
Instalando SVP4 e MPV (VapourSynth) no Gentoo
Migração do KDE Plasma para Cinnamon no Gentoo (com systemd) + Tema Colloid
Como desativar a economia de energia no Gentoo (Systemd, Wi-Fi, USB e SSH)
Linux mint cinnamon travando. (2)
Vulkan Gaming no Slackware [RESOLVIDO] (14)









