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.324 ]
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
theme2background - Extrair arquivos themepack e mover para o diretório backgrounds
Freeradius 2.x.x - Monitoração
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Tem como instalar o gerenciador AMD Adrenalin no Ubuntu 24.04? (6)