NR Max[I] ? $I : Max[I]; if ( 1 == ++Unique[I,$I]) Count[I]++ } } END { for(I in Mean) Mean[I]= Mean[I]/N[I]; dump("min",Min); dump("mean",Mean); dump("max",Max); dump("count",Count) } function dump(label,a, sep,i) { sep = sep ? sep : OFS; printf "!" label for(i=C1;i<=C2;i++) printf("%s%s%s%s", OFS,i,OFS,a[i]) print "" }