#! /bin/sh PATH=/home/mouse/acc/bin:"$PATH" #t=/tmp/totals.$$ #trap 'touch '$t'.x; rm -f '$t'.*; exit' 0 1 2 15 defcurr="`conf defcurrency`" raw=0 justfmt=0 while : do case "$1" in -raw) raw=1 shift ;; -fmt) justfmt=1 shift ;; *) break ;; esac done case $justfmt in 1) cat ;; *) awk -F: 'BEGIN { catsaw[""] = 0; defcurr = "'"$defcurr"'"; } { if (NF > 7) curr = $8; else curr = defcurr; tot[curr ":" $5] -= $7; tot[curr ":" $6] += $7; currsaw[curr] = 1; catsaw[$5] = 1; catsaw[$6] = 1; } END { ncurr = 0; for (curr in currsaw) { currname[ncurr] = curr; currnum[curr] = ncurr; ncurr ++; } for (cat in catsaw) { if (cat != "") { for (curr in currsaw) { if (tot[curr ":" cat] != 0) { printf("%s:%s:%d\n",cat,curr,tot[curr ":" cat]); } } } } }' ;; esac | case $raw in 1) cat ;; *) fmtamt | awk -F: 'BEGIN { defcurr = "'"$defcurr"'"; sawcurr[defcurr] = 1; currx[defcurr] = 0; curr[0] = defcurr; ncurr = 1; maxcat = -1; } { if (! sawcurr[$2]) { sawcurr[$2] = 1; currx[$2] = ncurr; curr[ncurr] = $2; ncurr ++; } c = currx[$2]; s = substr($0,length($1)+length($2)+length($3)+4,length($0)); if (length(s) > maxlen[c]) maxlen[c] = length(s); if (length($1) > maxcat) maxcat = length($1); sawcat[$1] = 1; val[$1 ":" $2] = s; } END { if (maxcat >= 0) { for (i=0;i