sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #78703
Re: Opsummering af data fra RRD ?
-
To:
sslug-teknik@xxxxxxxx
-
From:
Peter Makholm <peter@xxxxxxxxxxx>
-
Date:
Mon, 13 Dec 2004 15:06:30 +0100
-
Cancel-lock:
sha1:FTeqLy7mg/lp6+Qw/gFQ7LWT0kg=
-
Delivered-to:
mailing list sslug-teknik@xxxxxxxx
-
In-reply-to:
<cpk6t8$hns$1@www.sslug.dk> (Brian Ipsen's message of "Mon, 13 Dec 2004 14:53:43 +0100")
-
Mailing-list:
contact sslug-teknik-help@xxxxxxxx; run by ezmlm
-
Newsgroups:
sslug.teknik
-
Organization:
hacking.dk - Doing fun stuff with open source
-
User-agent:
Gnus/5.09002 (Oort Gnus v0.20) XEmacs/21.4 (Security Through Obscurity, linux)
-
Xyzzy:
Nothing happens!
"Brian Ipsen" <bipsen@xxxxxxxxxx> writes:
> Nu er sagen så den, at jeg skal have lagt alle værdierne sammen - men
> hvordan pokker for jeg gjort det ? Jeg kan godt skrue en løkke sammen, som
> "spiser" en linie ad gangen fra outputtet - men jeg er ikke klar over
> hvordan jeg får lagt tal sammen, som er udskrevet som et tal gang 10 i n'te
> potens - er det noget, som awk kan hjælpe med ?
perl kan (dohhhh):
perl -lnaF: -e '$sum += $F[1]; END {print $sum}'
Forklaring:
-l slå når line ending-mode til. Primært fo rat undgå at skulle
sætte et \n ved udskrivningen.
-n får perl til at læse en linje ad gangen og udføre scriptet.
-a slå autosplit-mode til så hver linje automatisk bliver splittet
op og lagt i arrayet @F
-F: får perl til at splitte på ':' istedet for mellemrum (egenligt
unødvendigt her...)
-e angiver selve scriptet
'$sum += $F[1]' summerer op over anden kolonne.
'END { print $sum }' får perl til at udskrive summen tilsidst.
Hele håndteringen af E-notation klarer perl helt automagisk.
--
Peter Makholm | Vi smider blade allesammen - hele tiden
peter@xxxxxxxxxxx | som et konstant spirende efterår
http://hacking.dk | Og hele tiden vokser nye frugter frem
| og vi finder nogen til at plukke dem
| -- Tilt, Perkussive popler
Follow ups
References