Pessoal... soh um detalhe que me gerou duvida. No script inicial que o criador do topico mandou ele tentava converter o NOME do arquivo de UTF para ISO e não o seu conteudo (pelo menos foi isso q eu me lembro de ter pensado quando li).
O comando file -i retorna o charset do conteudo do arquivo.. exemplo: [EMAIL PROTECTED] ~]# LC_ALL=pt_BR.iso88591 ls -l t* -rw-r--r-- 1 root root 0 Jan 11 11:42 tésteção [EMAIL PROTECTED] ~]# LC_ALL=pt_BR.utf8 ls -l t* -rw-r--r-- 1 root root 0 Jan 11 11:42 t?ste??o [EMAIL PROTECTED] ~]# Eu entendi que esse era o tipo de problema que ele queria corrigir... Talvez fosse mais interessante voce alterar o locale desse servidor ou ajustar a config do samba, mas isso já é off-topic ;) Se falei bobeira, ignorem-me.. já faz um tempo q começou a thread. Flávio do Carmo Júnior On 1/11/07, Tiago Barcellos Peczenyj <[EMAIL PROTECTED]> wrote: > > Algumas sugestões sob forma de script > > http://pastebin.com/856704 > > Entre outras coisas, usei case / for e coloquei mais uma opção > > []´s Tiago > > On 1/11/07, andnovelli <[EMAIL PROTECTED]<andre.ti%40embalatec.com.br>> > wrote: > > > > Olá amigos! > > > > Primeiramente obrigado pela força que todos estão dando! > > > > Waldemar! > > > > Eu dei uma olhada no seu script e achei algumas coisas que eu deveria > > mudar > > mas nao estou muito certo ok? por isso vou colocar o script com as > minhas > > alterações para que voce possa me dar mais um help se possivel! > > > > Vamos às batatas: > > > > #!/bin/bash > > # Script para conversão de encoding > > # | Uso: ./toutf8 diretório > > # | Waldemar Silva Júnior <[EMAIL PROTECTED] > > <wsjunior%40gmail.com><wsjunior%40gmail.com>> > > > # Variáveis utilizadas no script > > TO=ISO8859-1 ##Este é o charset que eu quero colocar > > 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'` ##coloquei essa linha junto com a de cima > > if [ $TPARQ != ISO8859-1 ]; then ## eu entendi que o script esta > > testando se o tipo de arquivo é diferente de ISO8859-1 e o parametro -a > > $TPARQ != us-ascii eu retirei pq quero que todos estejam em ISO 8859, > fiz > > certo ? > > > > 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 > > > > colocando esse escript pra rodar eu recebo um erro na linha 13 (retirei > > todas > > as linhas em branco e os MEUS comentarios, deixando apenas os creditos > do > > cabeçalho), e o script ignora todos os arquivos. > > > > o que pode estar acontecendo ? > > > > abaixo o erro: > > > > Ignorando arquivo: aline/coisas/DANIEL SERV/Daniel/Referencias/114_g.jpg > > Tipo: cannot cannot > > ./nconv.sh: line 12: [: too many arguments > > > > Agradeço desde já a sua grande ajuda! > > André! > > > > > > On Wednesday 10 January 2007 11:14, Waldemar wrote: > > > 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 <[EMAIL PROTECTED] > > > <wsjunior%40gmail.com><wsjunior%40gmail.com>> > > > > > > # 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 <[EMAIL PROTECTED]<andre.ti%40embalatec.com.br> > <andre.ti%40embalatec.com.br>> > > 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 > > > > [EMAIL PROTECTED] <andre.ti%40embalatec.com.br> < > andre.ti%40embalatec.com.br> > > > > 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: [EMAIL > > > > PROTECTED]<shell-script-unsubscribe%40yahoogrupos.com.br> > <shell-script-unsubscribe%40yahoogrupos.com.br> > > > > ---------------------------------------------------------- > > > > 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 > > > > -- > > Andre Novelli > > Depto de TI > > +55 11 5534.0017 > > [EMAIL PROTECTED] <andre.ti%40embalatec.com.br> < > andre.ti%40embalatec.com.br> > > www.embalatec.com.br > > > > > > > > -- > Tiago B Peczenyj > Linux User #405772 > > # cd /pub > # more beer > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas]