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.520 ]
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
Tocar listas de músicas usando mpg123 e kdialog ou Xdialog
Script para automatizar compilação e instalação do Squid
Criação de atalhos no Desktop (Unity)
Script para fazer o scroll (a rodinha) do mouse serial funcionar
Randomize - Gera números aleatórios de 1 a 100 mil
IA local no bolso, novo visual no Raspberry Pi OS e mais destaques do software livre
Kernel turbinado, compatibilidade em alta e debate sobre sustentabilidade: o dia no mundo Linux
Kernel turbinado e GNOME 49 dominam o giro do dia no mundo Linux
Novidades Linux: Kernel 6.17, distros em ebulição e segurança em foco
Kernel ganha novos linters Rust e distros avançam com recursos de IA
Adicionando o repositório backports no Debian 13 Trixie
Como definir um IP estático no Linux Debian
O que você está ouvindo agora? [2] (223)
Como vencer a procrastinação? (3)
Alguém que utilize o Warsaw do BB no Ubuntu 24.04 [RESOLVIDO] (7)
Orientação para instalar o Warsaw - módulo de proteção do Banco do Bra... (9)