#! /usr/bin/gawk -f # first record: prefixes # general input record format: # $1 = total count for suffix # $2 = the suffix # $3- = the counts for prefix/suffix combination BEGIN { NPREF = 0; PFWD=12; PFDASH = ""; for(i=0;i<PFWD;i++) PFDASH = (PFDASH "-") CTWD=5; CTDASH = ""; for(i=0;i<CTWD;i++) CTDASH = (CTDASH "-") } function dashes(n) { printf "%s %s", PFDASH, CTDASH for (i=1;i<=n;i++) printf " %s", CTDASH printf "\n" } (NR == 1) { NPREF = NF printf "\n" printf "%-*s %*s", PFWD, "SUFFIX", CTWD, "TOTAL" for (i=1;i<=NPREF;i++) { printf " %*s", CTWD, $(i) } printf "\n" dashes(NPREF) next } /./ { printf "%-*s %*d", PFWD, $2, CTWD, $1 for (i=1;i<=NPREF;i++) { totct[i] += $(i+2) tottot += $(i+2) printf " %*d", CTWD, $(i+2) } printf "\n" next } END { dashes(NPREF); printf "%-*s", PFWD, "TOTALORUM" printf " %*d", CTWD, tottot for (i=1;i<=NPREF;i++) { printf " %*d", CTWD, totct[i] } printf "\n" }