Shell-Script zur gruppierten Summenbildung

RalfGesellensetter rgx at gmx.de
Sat Mar 6 17:05:40 CET 2010


Hallo,

ich habe schon etwas recherchiert und probiert - aber jetzt schließt 
sich mein Zeitfenster für derart lehrreiche Tüfteleien - und ich hoffe 
auf eure guten Anregungen:

Kontext: Nachträgliche Druckkostenerhebung per User auf der Grundlage 
eines Druckprotokolls (CSV).

Ich habe das Protokoll (per wget vom Drucker!) bereits mit tr so 
konvertiert, dass Anführungszeichen gelöscht und Kommata in TABs 
konvertiert sind. Außerdem habe ich die Zeilen per sort -k3 nach 
usern sortiert (erleichtert die Gruppierung).

Spalte 3 enthält den User, Spalte 7 die Anzahl der gedruckten Seiten.

Ich möchte für jeden User eine Summe.

Erste Ansätze mit awk usw. misslangen:


#cat /tmp/druckverbrauch.tab | for read c; \ 
do awk `{split($c,t,"\t");sizes[t[3]] += int($7)} \
END {for (u in sizes) { \
printf("User %s printed %d pages\n",u,sizes[u])}} `; done

cat /tmp/druckverbrauch.tab  | \
while read c
do
    echo $c | read A B C D E F G rest
   echo $C druckt $G
#   u='echo $c | cut -f3'
#   s='echo $c | cut -f7'
#   echo $u druckt $s  Seiten.
done


Danke!
Ciao
Ralf



More information about the Linux mailing list