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.483 ]
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
Equacao de Segundo Grau em Dialog
Cryporange - criptografador de mensagens
Compac.sh - Compactador de arquivos
Conciliando ZRAM Swap com Swap em arquivo ou partição
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
Dicas para encontrar games Indies diferentes e criativos
Proteja seu Linux Mint com o Timeshift: Restaure o sistema mesmo que ele não inicie!
Instalar driver Nvidia no Debian 13
Redimensionando, espelhando, convertendo e rotacionando imagens com script
Ajuda com o Debian 13 - Video hibrido geforce 940 mx Wayland OFF (2)
Problema com impressoras de rede (1)
Rust é o "C da nossa geração"? (10)