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.547 ]
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
Corrigir nome dos arquivos pelo Nautilus
Instalação de servidor LAMP com PHP 7 no Mint
Script de backup para MySQL - JonMyBackup
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Pergunta: Meu teclado não está respondendo direito como e consertar? (2)
Secure boot, artigo interessante, nada técnico. (6)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (0)









