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 <
[email protected]> 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
> <[email protected]>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 <[email protected]>
>>
>>> 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 <[email protected]>
>>>
>>>> Então façamos como arquivo:
>>>>
>>>> #!perl -ln
>>>> $m{$`}{$'}=/;/;$,=$&}{print X=>@a=keys%m;print$_,@{$m{$_}}{@a}for@a
>>>>
>>>>
>>>>
>>>> Just another Perl Hacker,
>>>> Fernando (SmokeMachine)
>>>>
>>>>
>>>> 2012/6/1 Stanislaw Pusep <[email protected]>
>>>>
>>>>> Em bash, pelo menos, teria que rodar como:
>>>>>
>>>>> perl -MEnglish -lnE'$m{$`}{$POSTMATCH}=/;/;$,=$&}{say
>>>>> X=>@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt
>>>>>
>>>>> ABS()
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> On Fri, Jun 1, 2012 at 1:31 PM, Fernando Oliveira <
>>>>> [email protected]> wrote:
>>>>>
>>>>>> C:\>perl -lnE"$m{$`}{$'}=/;/;$,=$&}{say
>>>>>> X=>@a=keys%m;say$_,@{$m{$_}}{@a}for@a" tabela.txt
>>>>>>
>>>>>>
>>>>>>
>>>>>> Just another Perl Hacker,
>>>>>> Fernando (SmokeMachine)
>>>>>>
>>>>>>
>>>>>> 2012/6/1 Fernando Oliveira <[email protected]>
>>>>>>
>>>>>>> bom... aqui no windows funfa... :P
>>>>>>> no windows eu to usando o "" no -e...
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Just another Perl Hacker,
>>>>>>> Fernando (SmokeMachine)
>>>>>>>
>>>>>>>
>>>>>>> 2012/6/1 breno <[email protected]>
>>>>>>>
>>>>>>>> Ha! Alguém consegue usar $' na shell sem escapar?
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Fri, Jun 1, 2012 at 1:24 PM, Stanislaw Pusep <
>>>>>>>> [email protected]> wrote:
>>>>>>>>
>>>>>>>>> C:\> :(
>>>>>>>>>
>>>>>>>>> ABS()
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Fri, Jun 1, 2012 at 1:23 PM, Fernando Oliveira <
>>>>>>>>> [email protected]> wrote:
>>>>>>>>>
>>>>>>>>>> C:\>perl -lnE"/;/;$,=$&;++$m{$`}{$'}}{say
>>>>>>>>>> X=>@a=keys%m;say$_,@{$m{$_}}{@a}for@a" tabela.txt
>>>>>>>>>> X;Joao;Pedro;Manoel
>>>>>>>>>> Joao;;1;
>>>>>>>>>> Pedro;;;1
>>>>>>>>>> Manoel;;1;
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> Just another Perl Hacker,
>>>>>>>>>> Fernando (SmokeMachine)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2012/6/1 breno <[email protected]>
>>>>>>>>>>
>>>>>>>>>>> perl -F\; -lanE'++$m{$F[0]}{$F[1]}}{$,=";";say
>>>>>>>>>>>
>>>>>>>>>>> X=>@a=keys%m;say$_,@{$m{$_}}{@a}for@a' tabela.txt
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Rio-pm mailing list
>>>>>>>>>> [email protected]
>>>>>>>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Rio-pm mailing list
>>>>>>>>> [email protected]
>>>>>>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Rio-pm mailing list
>>>>>>>> [email protected]
>>>>>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Rio-pm mailing list
>>>>>> [email protected]
>>>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Rio-pm mailing list
>>>>> [email protected]
>>>>> http://mail.pm.org/mailman/listinfo/rio-pm
>>>>>
>>>>
>>>>
>>>
>>
>> _______________________________________________
>> Rio-pm mailing list
>> [email protected]
>> 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
> [email protected]
> http://mail.pm.org/mailman/listinfo/rio-pm
>
_______________________________________________
Rio-pm mailing list
[email protected]
http://mail.pm.org/mailman/listinfo/rio-pm