shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Uso do iconv em todos os subdiretorios de um dir raiz


From: Waldemar
Subject: Re: [shell-script] Uso do iconv em todos os subdiretorios de um dir raiz
Date: Wed, 10 Jan 2007 11:14:36 -0200

Olá André,

Recentemente eu tive que fazer um script para este tipo de conversão aqui no
meu trabalho. Bom, segue aí o que eu fiz aqui.. Funciona recursivamente e
você só vai precisar fazer alguns ajustes aí pras suas necessidades. Este aí
recebe um diretório como parâmetro e verifica o encoding de todos os
arquivos que encontra, se este for diferente de utf-8 ou us-ascii ele
converte para utf-8 e exibe na tela aqueles arquivos que são modificados e
aqueles que são ignorados. Sei que pode estar mal elaborado, mas funcionou
para as minhas necessidades. Espero que lhe seja útil de alguma maneira.

#!/bin/bash
#  Script para conversão de encoding
#  Uso: ./toutf8 diretório
#  Waldemar Silva Júnior <address@hidden>

# Variáveis utilizadas no script

TO=UTF-8
DIR=$1

# Conversão

find $DIR -type f | while read i;
do
        ARQ=`echo $i`
        TPARQ=`file -i ${i} | awk {'print $3'} | tr ":" " " | sed
's/charset\=//g'`

        if [ $TPARQ != utf-8 -a $TPARQ != us-ascii ]; then

                FROM=$TPARQ
                ICONV="iconv -f $FROM -t $TO"

                echo -n "Alterando arquivo: " $ARQ " Tipo: " $TPARQ
                cp $ARQ $ARQ.bak
                $ICONV $ARQ.bak -o $ARQ
                rm $ARQ.bak
        echo
        else
                echo -n " Ignorando arquivo: " $ARQ " Tipo: " $TPARQ
                echo

        fi
done


Em 10/01/07, andnovelli <address@hidden> escreveu:
>
> Olá lista!
>
> estou com um pequeno probleminha com uma partição que contem arquivos
> compartilhados pelo samba,  estes arquivos estao com os nomes em UTF-8 e
> eu
> preciso Tê-los em ISO 8859-1, comecei a fazer a conversão com o iconv
> diretorio por diretorio, mas este trabalho começou a dar no pé, ai pensei
> em
> fazer um script que rode em todos os subdiretorios, e convertendo os
> arquivos, mas ai o bicho ta pegando, estou tendo uns erros e nao sei como
> posso acertar isso!
>
> vejam:
>
> tenho o seguinte shell em /usr/sbin :
> arquivo convauto
>
> #!/bin/bash
> novo="`echo $1 | iconv -f UTF-8 -t ISO-8859-1`"; if [ "$novo" != "$1" ] ;
> then
> mv "$1" "$novo"; fi
>
> para rodar ele em todos os subdirs eu faço assim:
>
> find ./ -type f -exec convauto {} \;
>
> mas nao esta funcionando direito, ele me gera uma série de erros falando
> que o
> arquivo ou dir nao foi encontrado.
>
>
> alguém tem alguma ideia de como posso fazer isso funcionar?
>
> abração!!
>
>
>
> --
> Andre Novelli
> Depto de TI
> +55 11 5534.0017
> address@hidden
> www.embalatec.com.br
>
>
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de programação, como
> perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
> aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em
> http://www.listas-discussao.cjb.net
> ---------------------------------------------------------------------
> Servidor Newsgroup da lista: news.gmane.org
> Grupo: gmane.org.user-groups.programming.shell.brazil
>
>
> Links do Yahoo! Grupos
>
>
>


-- 
Waldemar Silva Júnior
GTalk/Jabber: address@hidden


[As partes desta mensagem que não continham texto foram removidas]



reply via email to

[Prev in Thread] Current Thread [Next in Thread]