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