[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