[Rio-pm] Problema com formatos

Leo Balter leonardo.balter em gmail.com
Domingo Janeiro 27 18:58:28 PST 2013


Sou novato em Perl mas o Garu e o Blabos me mostraram um esquema bacana do perl de rodar um mesmo comando para cada linha do arquivo. 

Acho que substituiria seu while e ficaria interessante usar isso combinando com regex. 

Nao lembro o esquema, mas da pra pesquisar por algo enquanto outra pessoa nao responde.

Leo Balter - via mobile

Em 27/01/2013, às 22:35, Aureliano Guedes <guedes_1000 em hotmail.com> escreveu:

> Ola monges,
> 
> Estou com uma pasta cheia de arquivos *.psd e um txt usado para modificar o nome dos arquivos.
> 
> O txt esta da seguinte forma:
> 001#nome_do_arquivo_001
> 002#nome_do_arquivo_002
> 003#nome_do_arquivo_003
> ....
> 
> E os arquivos nomeados da seguinte forma:
> nome_do_arquivo_001.psd
> nome_do_arquivo_002.psd
> nome_do_arquivo_003.psd
> ...
> 
> O objetivo era renomear os arquivos com base no txt, onde o "nome_do_arquivo" fosse substituido pelo numero antes do #.
> Algo como :
> #!/usr/bin/env perl
> 
> use common::sense;
> use autodie;
> 
> my @list = <*>;
> @list = glob("*.psd");
> 
> open my $in, "<", "nome_do_arquivo.txt";
> 
> while (my $line = <$in>){
>     $line = ~/(.+)#´(.+)/;
>     my $s1 = $1;
>     my $s2 = $2;
>     
>     foreach my $i (@list){
>         if ($i =~ /.*´$s2/){
>             say "$_: $s2 -> $s1\n";
>             rename $_, $s1;
>         }
>     }
> }
> 
> Ou algo parecido.
> 
> O problema é que que o txt esta gb18030 (Chinês Tradicional) e o Perl trabalhando com o charset padrão os bytes são passados sem modificação nenhuma.
> O sistema consegue converter o nome dos arquivos *.psd e o conteudo do txt para iso-8859-1. Dessa forma a leitura fica assim:
> 501#°ËÀº»ÔÅ׾Ȱæ#
> Em contrapartida se convertido diretamente para utf8 ficaria:
> 501#八篮辉抛救版#
> Mas eu creio que o Perl não esteja interpretando o texto original como gb18030 e sim como outro formato e tentando converter para utf8.
> 
> Portanto não da certo tentar renomear nem mesmo tentar ler o arquivo txt.
> 
> Alguem tem alguma sugestão de como resolver este problema???
> 
> Desde já grato.
> 
> Att,
> Aureliano Guedes
> 
> _______________________________________________
> Rio-pm mailing list
> Rio-pm em pm.org
> http://mail.pm.org/mailman/listinfo/rio-pm
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20130128/f9c901ba/attachment.html>


Mais detalhes sobre a lista de discussão Rio-pm