sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #78866
Re: Opsummering af data fra RRD ?
"Peter Makholm" <peter@xxxxxxxxxxx> wrote in message
news:87vfb61ee1.fsf@xxxxxxxxxxxxx...
>> 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.
Det ser jo ud til at løse problemet - i første omgang... Jeg har her i dag
fået en underlig værdi ud, og besluttede mig for at grave lidt mere i
det.... Ved at undersøge data fra RRD fik nu nu følgende ud:
1103241000: 9.5200000000e-01
1103241300: nan
1103241600: nan
1103241900: 3.3133333333e+00
Altså er opsummeringen af værdierne nødt til at tage hensyn til, at der kan
stå "nan" - og i så fald skal den læste værdi formodes at være 0 .....
Hvordan fikses det ?
/Brian
Follow ups
References