Addieren von Werten mit der bash

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
ding280
Beiträge: 324
Registriert: 15.04.2005 18:31:18

Addieren von Werten mit der bash

Beitrag von ding280 » 03.12.2007 22:15:47

Hallo,

ich möchte aus einer etwas bereinigten common.log vom Apache für jeden vhost die Übertragenen Datenmengen addieren.

So sieht die Datei aus

Code: Alles auswählen

domain1 1234
domain1 2341
domain2 3452
domain2 2342
domain1 2321
Soweit ich weiß, muss ich da eine for-Schleife bauen:

Code: Alles auswählen

for i in $(cat common_clear.log)
do
        was hier?
done
Als Ausgabe möchte ich dann pro Domain die Summe der Datenmengen pro vhost:

Code: Alles auswählen

domain1 5896
domain2 5794
Kann mir da jemand weiterhelfen?

Grüße Tommy

Benutzeravatar
finupsen
Beiträge: 1327
Registriert: 21.04.2004 20:07:05
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Beitrag von finupsen » 03.12.2007 23:30:22

moin,

Code: Alles auswählen

#!/bin/bash
LOGFILE="common_clear.log"
DOMAINS=`awk '{ print $1 }' $LOGFILE | sort | uniq`
for d in $DOMAINS
do
        bytes=`grep $LOGFILE -e $d | awk '{sum+=$2}END{print sum}'`
        echo -e "$d bytes: $bytes"
done
sicher nicht perfekt , aber fluppt ... ;)
(für große logfiles sicher nicht geeignet)

Antworten