[Rio-pm] Tratamento de dados para CSV

Fernando Oliveira fernandocorrea em gmail.com
Sexta Junho 1 11:06:42 PDT 2012


Bom, nova tacada, voltando aos requisitos originais:

#!perl -ln
/;/;$,=$&;$l{$'}//=$i++;$c{$`}[$l{$'}]=1}{print X=>keys%l;print
$_,@{$c{$_}}[values%l]for keys%c

Just another Perl Hacker,
Fernando (SmokeMachine)


Em 1 de junho de 2012 14:54, Manoel Domingues Junior <
manoel.domingues.junior em gmail.com> escreveu:

> Eu ainda estou testando todas as alternativas dadas e tentando entender
> algumas...rsrs
>
> Em tese, a primeira coluna e primeira linha não tem relação uma com as
> outras, ou seja, os dados podem se repetir ou não...
>
> Estava pensando em usar o Text::CSV para adicionar um elemento (no caso
> "1") na posicao $1 $2, onde:
>
> ($a0,$a1) = (Manoel,João)
>
> Se der erro, vejo se a coluna existe, se existir adiciono a linha, senão
> existir adiciono a coluna...
>
> Acho que assim vai... estou testando...
>
> Abraços,
>
> Em 1 de junho de 2012 14:45, Fernando Oliveira <fernandocorrea em gmail.com>escreveu:
>
> Se a segunda coluna tiver mais elementos inexistentes na 1a, esses não
>> aparecem.
>> Continuamos assim? ou voltamos do inicio?
>>
>>
>>
>> Just another Perl Hacker,
>> Fernando (SmokeMachine)
>>
>>
>> 2012/6/1 Fernando Oliveira <fernandocorrea em gmail.com>
>>
>>> Mas e então? O arquivo foi aceito?
>>>
>>> E tem mais uma coisa: desde a 1a tacada do Stanislaw, se os elementos de
>>> antes do ";" forem diferentes do de depois, a tabela fica errada...
>>>
>>>
>>> Just another Perl Hacker,
>>> Fernando (SmokeMachine)
>>>
>>>
>>> 2012/6/1 Fernando Oliveira <fernandocorrea em gmail.com>
>>>
>>>> Então façamos como arquivo:
>>>>
>>>> #!perl -ln
>>>> $m{$`}{$'}=/;/;$,=$&}{print X=>@a=keys%m;print$_,@{$m{$_}}{@a}for em a
>>>>
>>>>
>>>>
>>>> Just another Perl Hacker,
>>>> Fernando (SmokeMachine)
>>>>
>>>>
>>>> 2012/6/1 Stanislaw Pusep <creaktive em gmail.com>
>>>>
>>>>> Em bash, pelo menos, teria que rodar como:
>>>>>
>>>>> perl -MEnglish -lnE'$m{$`}{$POSTMATCH}=/;/;$,=$&}{say
>>>>> X=>@a=keys%m;say$_,@{$m{$_}}{@a}for em a' tabela.txt
>>>>>
>>>>> ABS()
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Jun 1, 2012 at 1:31 PM, Fernando Oliveira <
>>>>> fernandocorrea em gmail.com> wrote:
>>>>>
>>>>>> C:\>perl -lnE"$m{$`}{$'}=/;/;$,=$&}{say
>>>>>> X=>@a=keys%m;say$_,@{$m{$_}}{@a}for em a" tabela.txt
>>>>>>
>>>>>>
>>>>>>
>>>>>> Just another Perl Hacker,
>>>>>> Fernando (SmokeMachine)
>>>>>>
>>>>>>
>>>>>> 2012/6/1 Fernando Oliveira <fernandocorrea em gmail.com>
>>>>>>
>>>>>>> bom... aqui no windows funfa... :P
>>>>>>> no windows eu to usando o "" no -e...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Just another Perl Hacker,
>>>>>>> Fernando (SmokeMachine)
>>>>>>>
>>>>>>>
>>>>>>> 2012/6/1 breno <breno em rio.pm.org>
>>>>>>>
>>>>>>>> Ha! Alguém consegue usar $' na shell sem escapar?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Jun 1, 2012 at 1:24 PM, Stanislaw Pusep <
>>>>>>>> creaktive em gmail.com> wrote:
>>>>>>>>
>>>>>>>>> C:\> :(
>>>>>>>>>
>>>>>>>>> ABS()
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, Jun 1, 2012 at 1:23 PM, Fernando Oliveira <
>>>>>>>>> fernandocorrea em gmail.com> wrote:
>>>>>>>>>
>>>>>>>>>> C:\>perl -lnE"/;/;$,=$&;++$m{$`}{$'}}{say
>>>>>>>>>> X=>@a=keys%m;say$_,@{$m{$_}}{@a}for em a" tabela.txt
>>>>>>>>>> X;Joao;Pedro;Manoel
>>>>>>>>>> Joao;;1;
>>>>>>>>>> Pedro;;;1
>>>>>>>>>> Manoel;;1;
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Just another Perl Hacker,
>>>>>>>>>> Fernando (SmokeMachine)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2012/6/1 breno <breno em rio.pm.org>
>>>>>>>>>>
>>>>>>>>>>> perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=";";say
>>>>>>>>>>>
>>>>>>>>>>> X=>@a=keys%m;say$_,@{$m{$_}}{@a}for em a' tabela.txt
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Rio-pm mailing list
>>>>>>>>>> Rio-pm em pm.org
>>>>>>>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Rio-pm mailing list
>>>>>>>>> Rio-pm em pm.org
>>>>>>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Rio-pm mailing list
>>>>>>>> Rio-pm em pm.org
>>>>>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Rio-pm mailing list
>>>>>> Rio-pm em pm.org
>>>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Rio-pm mailing list
>>>>> Rio-pm em pm.org
>>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>>>
>>>>
>>>>
>>>
>>
>> _______________________________________________
>> Rio-pm mailing list
>> Rio-pm em pm.org
>> http://mail.pm.org/mailman/listinfo/rio-pm
>>
>
>
>
> --
> --
> Manoel Domingues Junior
> "Coletar dados é o primeiro passo para a sabedoria, mas compartilhar dados
> é o primeiro passo para a comunidade."
> IBM - Prodigy Linux
>
>
> _______________________________________________
> 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/20120601/0f6736af/attachment-0001.html>


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