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]> # 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]> > > # 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]> 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] > > 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] > > --------------------------------------------------------------------- > > 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] www.embalatec.com.br