[Cascavel-pm] Outro probleminha....
Luis Campos de Carvalho
lechamps em terra.com.br
Quarta Outubro 8 13:30:22 CDT 2003
Flavio S. Glock wrote:
> Adriano Vivan Borro wrote:
>
>>Opa,
>>
>>To quase chegando lah. O problema eh q eu precisava ordenar um arquivo
>>de 3 ou mais colunas. Tentei usar a rotina, mas nao deu certo. Digamos
>>que tenho entao, um arquivo com nomes e sobrenomes. Quero processa-lo de
>>tal forma que me retorne um arquivo com os nomes ordenados (aparecendo
>>uma unica vez), os sobrenomes relativos aos nomes, e a quantidade de
>>vezes que esse nome apareceu. Tb, nao entendi muito bem o exemplo do
>>flavio. O q este map faz? Enfim... Tah ae a rotina que eu escrevi, com a
>>ajuda d vcs:
>>
>>#!/bin/perl
>>open (NOMES,"nomes.txt");
>>open (OUTPUT,">output.txt);
>>
>>#rotina do flavio, q nao consegui rodar e nao entendi muito bem
>>#while (<NOMES>)
>>#{
>># chomp;
>># $h{$_}++};
>># print map { "$_ $h{$_}\n" } sort key %h;
>>
>>while (<NOMES>)
>>{
>> chomp;
>> $count{$_}++;
>>}
>>@keys=sort {
>> $_{$a} cmp $_{$b}
>> } keys %count;
>>foreach (@keys) {
>> print OUTPUT "$_\t$count{$_}\n";
>> }
>>close OUTPUT;
>>close NOMES;
>>
>>Bem... Resumindo...
>>
>>Tenho o arquivo:
>>
>>Zeh Silva
>>Scheila Carvalho
>>Zeh Tripeh
>>Claudia Shiffer
>>Zeh Maneh
>>
>>E quero como saida:
>>
>>Claudia Shiffer 1
>>Scheila Carvalho 1
>>Zeh Maneh, Silva, Tripeh 3
>
>
> Sem map, desta vez:
>
> while (<>)
> {
> ($nome,$sobrenome) = chomp && split;
> $h{$nome}{$sobrenome}++
> };
>
> for $nome ( sort keys %h ) {
> print "$nome ",
> join(',', keys %{$h{$nome}}) ," ",
> 0 + keys %{$h{$nome}}, "\n";
> }
>
> # saída:
> Claudia Shiffer 1
> Scheila Carvalho 1
> Zeh Tripeh,Silva,Maneh 3
>
>
Flávio, se eu entendi direito, o Adriano tem 3 colunas (nomes). Isso
complica bastante a coisa, já que a estrutura de dados que parece ser a
mais adequada é uma árvore com hashes para representar as sub-árvores e
arrays de valores nas folhas.
Estou pensando em uma solução simples.
Por favor me corrijam se eu estiver errado.
--
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Luis Campos de Carvalho is Computer Scientist,
PerlMonk [SiteDocClan], Cascavel-pm Moderator,
Unix Sys Admin && Certified Oracle DBA
http://br.geocities.com/monsieur_champs/
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
Mais detalhes sobre a lista de discussão Cascavel-pm