[perl] cadenas y capturar variable

Salvador Ortiz Garcia sog@msg.com.mx
Fri, 13 Oct 2000 15:41:22 -0500 (CDT)


On Fri, 13 Oct 2000, Cesar Villegas Ureta wrote:

> Holas amigos listeros
> 
> Necesito una ayuda q de seguro es muy facil
> tengo un archivo q contiene una lista mas o menos asi
> 
> 1000 tengo amigos de varios paises
> 23 mi mama me mima
> 2 tengo 2 perros y me gustan
> 873 si no digo la verdad me matan
> 34 me voy de viaje
> ....
> 
> y asi una lista inmensa
> lo q yo quiero es sumar los valores de cada linea q contengan un grupo
> de caracteres en comun, por ejemplo: 
> 
> si tiene el caracter "de" en la linea, sumaria 1000 + 34 
> si tiene el caracter "me" sumaria 23 + 2 + 873 + 34 
> si tiene el caracter "mama" se queda en 23

Trivial ;-) 

Totalmente en memoria:

$ perl -e '
    ($t[$.]{v},@{$t[$.]{p}}) = split while(<>);
    for $c (@t) {
       $T{$_} += $c->{v} for @{$c->{p}};
    }
    print "Totales:\n",map "$_ -> $T{$_}\n", sort keys %T;
' <archivo

Totales:
2 -> 2
amigos -> 1000
de -> 1034
digo -> 873
gustan -> 2
la -> 873
mama -> 23
matan -> 873
me -> 932
mi -> 23
mima -> 23
no -> 873
paises -> 1000
perros -> 2
si -> 873
tengo -> 1002
varios -> 1000
verdad -> 873
viaje -> 34
voy -> 34
y -> 2


Saludos

Salvador Ortiz


--------- Pie de mensaje --------------------------------
Visite: http://tlali.iztacala.unam.mx/~randrade/perl.shtml
Cancelar inscripcion:
mail to: majordomo@tlali.iztacala.unam.mx
text   : unsubscribe perl