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

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

Re: [shell-script] Conversão de nome de arquivos.


From: Tiago Peczenyj
Subject: Re: [shell-script] Conversão de nome de arquivos.
Date: Wed, 11 Jan 2012 14:06:06 -0200

Eu usaria uma paleativo.

Tenta forçar certas conversões e procuraria por caracteres não conhecidos,
encontrando eu deletaria e tentaria emitir algum aviso, por exemplo. A
partir desses avisos vc pode estudar se não existem casos especiais que vc
deva trabalhar, por exemplo. Mas algo me diz que não há solução pratica
para este problema exceto evitar o uso de caracteres diferentes do
a-zA-Z0-9 no nome do arquivo. Até por que o nome do arquivo é uma forma
apenas de identificar o recurso, as interfaces graficas modernas poderiam
exibir um nome mais eloquente a partir de meta-dados dentro do arquivo (um
arquivo mp3, por exemplo, tem campos para o nome da musica, artista, etc) e
não do nome do mesmo, simplesmente. Seria uma otima solução para
interoperabilidade. Paciência né...

ps: imagino esse tipo de problema em maquinas japonesas... tenso...

2012/1/11 Alysson Gonçalves de Azevedo <address@hidden>

> **
>
>
> Bem, não sei se é por que você não leu o primeiro email da thread ou oque,
> mas dá uma olhada no modo que o script está...
>
>
> Com base nesse artigo<
> http://www.vivaolinux.com.br/dica/Renomeando-arquivos-Codificacao-Invalida-e-um-Bonus
> >e
> nesse
> > outro <http://blog.welrbraga.eti.br/?p=440>, eu consegui fazer aparecer
> o
> > meu script no menu do contexto e ao clicar, ele corrigi tudo.
> > Segue o código (também postado no pastbin <http://pastebin.com/Ybn63QBN
> >):
> > #!/bin/bash
> > OLDIFS=${IFS}
> > IFS="
> > "
> > for arquivo in ${NAUTILUS_SCRIPT_SELECTED_FILE_PATHS}; do
> > convmv -r -f cp850 -t utf8 --notest $arquivo
> > done
> > IFS=${OLDIFS}
> >
>
> Mas mesmo assim vlw, Rafael.
>
>
> Alysson Gonçalves de Azevedo
> (11) 8491-7730
>
> Em 11 de janeiro de 2012 13:09, Rafael Schmidt <address@hidden
> >escreveu:
>
> > **
>
> >
> >
> > Tenta usar:
> >
> > *convmv -r -f iso-8859-1 -t utf8 --notest $arquivo*
> > *
> > *
> > Espero ter ajudado, eu uso aki principalmente de fedora pra ubuntu e
> > funciona,
> > *
> > *
> > *
> > *
> > Em 11 de janeiro de 2012 13:00, Alysson Gonçalves de Azevedo <
> > address@hidden> escreveu:
> >
> > > **
> >
> > >
> > >
> > > Mas assim, para eu ter um mapa, eu precisaria saber qual encode
> inicial e
> > > então converter... mas veja, converter não é o problema, o problema é
> não
> > > adianta converter � por ¡, tem que converter pro carácter correto, seja
> > um
> > > í, &, ç ou qualquer outro.
> > >
> > > A questão toda é que na prática, todos os arquivos com caracteres
> > estranhos
> > > que vem do windows, ficam corretos se eu mudar de cp850 (que é o padrão
> > do
> > > DOS) para utf-8. Só com isso o script fica pronto.
> > >
> > > A duvida que fica é se um arquivo vindo do mac, ou do windows mobile,
> ou
> > > qualquer outro S.O, e possua um "caracter estranho" no nome,
> > provavelmente
> > > o encode correto não será o cp850, e é por isso que eu estava
> procurando
> > um
> > > meio de descobrir qual seria o encode correto.
> > > (via shell, pq outras linguagens faria perder a mágica da brincadeira
> > ^^).
> > >
> > > Mas mesmo assim, vlw pela dica.
> > >
> > >
> > > Alysson Gonçalves de Azevedo
> > > (11) 8491-7730
> > >
> > > Em 11 de janeiro de 2012 12:32, Marcelo Andrade <address@hidden
> > > >escreveu:
> > >
> > > > **
> >
> > >
> > > >
> > > >
> > > > On Wednesday, January 11, 2012, Alysson Gonçalves de Azevedo wrote:
> > > > >
> > > > > Hmm, muito interessante, seria quase isso, mas não está funcionando
> > na
> > > > > prática.
> > > > >
> > > > >
> > > > (..)
> > > >
> > > >
> > > > > Starting a dry run without changes...
> > > > > mv "./Cap�tulo 1.rar" "./Cap¡tulo 1.rar"
> > > > > No changes to your files done. Use --notest to finally rename the
> > > files.
> > > > >
> > > > > Ou seja, ele trocou "Cap�tulo" por "Cap¡tulo", e por isso não
> > resolve.
> > > > > se o "echo arquivo | file -i -" retornasse "charset=cp850", estaria
> > > > > perfeito.
> > > > >
> > > > (..)
> > > >
> > > > É o que havia comentado. Veja que neste caso o "�" foi convertido
> > > > para um "¡" (exclamação invertida) que é um caracter válido em UTF-8
> > > > cuja representação batia com a do símbolo � na página iso-8859-1.
> > > > Por isso a detecção de encoding nunca será perfeitamente precisa.
> > > > Não sei se ao invés de UTF-8 você colocar o destino sempre em ASCII
> > > > (ou seja, perdendo os acentos) resolveria.
> > > >
> > > > Assim, considere também uma abordagem mais simplista, por exemplo,
> > > > de apenas converter os caracteres mais comumente problemáticos
> > > > para seus equivalentes. Ou seja, todo � (i com acento em cp850)
> > > > vira í (i com acento em UTF-8). Neste caso, um tr mais elaborado
> talvez
> > > > resolvesse. Ou então pode ser que você precise de um dicionário de
> > > > palavras para fazer um batimento (todo Cap�tulo vira Capítulo, e
> > > > assim por diante. Poderia pegá-lo do dicionário do aspel, por
> exemplo.
> > > > Provavelmente uma solução menos propensa a erros mas talvez mais
> > > > complexa também).
> > > >
> > > > Espero ter colaborado.
> > > >
> > > >
> > > > --
> > > > MARCELO F ANDRADE
> > > > Belem, Amazonia, Brazil
> > > >
> > > > "I took the red pill"
> > > >
> > > > [As partes desta mensagem que não continham texto foram removidas]
> > > >
> > > >
> > > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> >
> > --
> >
> >
> > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
>
> [As partes desta mensagem que não continham texto foram removidas]
>
>  
>



-- 
Tiago B. Peczenyj
Linux User #405772

http://pacman.blog.br


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



reply via email to

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