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

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

Re: [shell-script] [MODERAÇÃO] Conversão de nome de arquivos.


From: Alysson Gonçalves de Azevedo
Subject: Re: [shell-script] [MODERAÇÃO] Conversão de nome de arquivos.
Date: Wed, 11 Jan 2012 12:15:37 -0200

Hmm, muito interessante, seria quase isso, mas não está funcionando na
prática.

Por exemplo, tenho aqui um arquivo chamado "Cap�tulo 1"

$ echo "Cap�tulo 1.rar" | file -i -
/dev/stdin: text/plain; charset=iso-8859-1

dae se eu rodo o programinha la,
$ convmv -f iso-8859-1 -t utf-8 "Cap�tulo 1.rar"
Your Perl version has fleas #37757 #49830
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.

Por acaso, eu descobri aqui o "Konwert", e se usar da seguinte forma:
$konwert any/pt/all-test "Cap�tulo 1.rar"
  26283342: cp1252
  26209958: mac
  25517763: cp850
    100247: utf8
       275: qp-8bit|cp1252

pelo man, eu vi que com esses parâmetros, ele trás as possíveis encodes.
Mas ele é meio lento, demora uns 4 segundos para calcular isso e ainda
assim não é muito preciso, já que a opção certa seria apenas a terceira, e
não a primeira retornada.

Mesmo assim, na medida do possível, vou continuar dando um lida sobre o
assunto... por curiosidade mesmo.

Obrigado a todos pela força.

Alysson Gonçalves de Azevedo
(11) 8491-7730



Em 11 de janeiro de 2012 11:02, Tiago Peczenyj
<address@hidden>escreveu:

> Corrija-me se eu estiver enganado mas o objetivo é converter o nome do
> arquivo e não o seu conteudo, certo?
>
> Poderia ser resolvido assim:
>
> pacman:teste peczenyj$ ls
> ação
> pacman:teste peczenyj$ for i in * ; do file --mime-encoding $i ; done
> ação: binary
> pacman:teste peczenyj$ for i in * ; do echo "$i" | file --mime-encoding - ;
> done
> /dev/stdin: utf-8
>
> ou seja, basta "ecoar" o nome do arquivo para o file. acredito que seja
> suficiente. me avise se não for!
>
> 2012/1/11 Alysson Gonçalves de Azevedo <address@hidden>
>
> > **
> >
> >
> > Bem, eu acho que cp850 está bom quando os arquivos vêm do windows...
> > Não sei se há esse problema com arquivos vindo do mac os e outros...
> > pelo que vi *nessa lista <http://file%20--mime-encoding/>* provavelmente
> > esse problema deve existir...
> >
> > como eu comentei, o "file --mime-encoding" até funciona para arquivos
> > textos, mas não binários como imagens e outros..
> > Vendo essa característica, eu acredito que esse programa funciona para
> > detectar a codificação dentro do arquivo em si, e não o usado no nome do
> > arquivo...
> >
> > Bem, de qualquer forma, enquanto não descobrimos algum recurso que faça
> > isso, o script já está utilizável...
> >
> > Mas assim, para quem não leu os links que eu coloquei de referencia, eu
> > realmente recomendo...
> > A possibilidade de executar nossos scripts diretamente nos arquivos
> > desejados pelo nautilus, é realmente algo mt útil.
> >
> >
> > Alysson Gonçalves de Azevedo
> > (11) 8491-7730
> >
> > Em 11 de janeiro de 2012 10:25, Tiago Peczenyj
> > <address@hidden>escreveu:
> >
> >
> > > O comando file pode detectar o encoding usado
> > >
> > > $ file --mime-encoding a.txt
> > > a.txt: utf-8
> > > $ cat a.txt
> > > ação
> > >
> > > pode ser bom o suficiente para muitas situações, nunca encontrei nenhum
> > > caso onde ele "se perdesse" mas se alguem teve alguma surpresa seria
> bom
> > > falar nessa thread
> > >
> > > quanto ao uso de php: nem sempre contamos com este recurso insalado e
> php
> > > possui as suas particularidades. por exemplo o suporte a unicode do
> php é
> > > dificitario se comparado com outras linguagens. mesmo perl que possui
> um
> > > bom suporte também não é escopo dessa lista. de fato lidar com
> character
> > > encoding não é facil, por exemplo, o caracter é pode ser representado
> de
> > > duas formas usando UTF-8
> > >
> > > a letra é, ou
> > >
> > > a letra e seguido de um ' especial que significa que a letra é
> acentuada.
> > >
> > > isso pode trazer surpresas quando vc quer procurar por uma dada string.
> > as
> > > vezes é necessario normalizar o texto para uma forma sem ambiguidades,
> > por
> > > exemplo. Esse tipo de problema é sério e talvez simplesmente shell
> script
> > > não resolva e sim tenha que ser caso a caso. O escopo da lista é
> > necessario
> > > para criar um foco para nós, se o seu problema pode ser resolvido fora
> > > existem outros lugares que podem responder muito bem e que tem os seus
> > > proprios focos. Eu, por exemplo, resolveria em Perl perguntando em
> listas
> > > ou foruns de perl, mas apenas essa questão em especial (poderia ser
> > > resolvido com C++ e então ir a foruns de C++, etc). Assim todos ficam
> > > felizes: quem assina não ve perda de foco e as conversas ficam mais
> > > interessantes.
> > >
> > > 2012/1/11 MrBiTs <address@hidden>
> > >
> > > > **
> >
> > > >
> > > >
> > > > -----BEGIN PGP SIGNED MESSAGE-----
> > > > Hash: SHA256
> > > >
> > > >
> > > > >
> > > > > Pesquisando agora, vi que em PHP tem um método mb_detect_encoding
> > > > > (http://us3.php.net/manual/en/function.mb-detect-encoding.php) que
> > diz
> > > > qual o encoding mais próximo dentro de uma lista de
> > > > > opções. Você poderia utilizar PHP em shell usando o shebang
> > > /usr/bin/php.
> > > >
> > > > A lista trata de linguagem shell-script, não PHP.
> > > >
> > > > - --
> > > >
> > > > LLAP
> > > >
> > > > .0. MrBiTs .'. - address@hidden
> > > > ..0 GnuPG -
> > > >
> > >
> >
> http://keyserver.fug.com.br:11371/pks/lookup?op=get&search=0x6EC818FC2B3CA5AB
> > > > 000 http://www.mrbits.com.br
> > > >
> > > > -----BEGIN PGP SIGNATURE-----
> > > > Version: GnuPG v1.4.10 (Darwin)
> > > >
> > > > iQEcBAEBCAAGBQJPDXoVAAoJEG7IGPwrPKWrctcH/2htOJJNIB90Gms6qSr2i0li
> > > > QIpnQMaSGs6wbV9rAxn9smE0cCnMPET0MAY3jeb4Tg1lCK/RB3L1uM7P/ZRNTKdB
> > > > RDPWLOPN8WOQ+sINxdS2a/eR5T3Vp7jauQh2ooCkRoY2IKQlBpap65WaS0bWBn71
> > > > jMEAiFrE/e3SLjoXsYQROoBh0IOV1Ui9oqBks0IWRDcfzU9btYhxwDAxQgAVqrgq
> > > > HyOvtcsXUS4vcaluelXw3TpJkXerZ5hxzA+ZbzVt6pBriGR88G0UVSI3p2txrna4
> > > > HX1UsZF4J4cFhnK9VJpXDTif6/hun+pnixL4qo8l96N9F4q2drcvJoOzjS9xayg=
> > > > =PI+x
> > > > -----END PGP SIGNATURE-----
> > > >
> > > >
> > > >
> > >
> > >
> > >
> > > --
> > > Tiago B. Peczenyj
> > > Linux User #405772
> > >
> > > http://pacman.blog.br
> > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> > >
> > >
> > >
> > > ------------------------------------
> >
> > >
> > > ----------------------------------------------------------
> > > 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
> >
> > >
> > >
> > >
> >
> > [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]
>
>
>
> ------------------------------------
>
> ---------------------------------------------------------------------
> 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
>
>
>


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



reply via email to

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