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.374 ]
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
Script para fazer o scroll (a rodinha) do mouse serial funcionar
Script para montar dispositivo Android
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Criar entrada no GRUB para uma ISO Linux (7)
Open Suse não abre wi-fi automaticamente (3)
Ruído no Microfone (ALC287 - AMD Ryzen 5 7535HS) no Debian 12.9 (15)