summaryrefslogtreecommitdiff
path: root/sum3.awk
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--sum3.awk15
1 files changed, 10 insertions, 5 deletions
diff --git a/sum3.awk b/sum3.awk
index 3e4661f..7f11a49 100644
--- a/sum3.awk
+++ b/sum3.awk
@@ -11,24 +11,29 @@ function isnum(n) {
}
-BEGIN { OFS = FS }
+BEGIN {
+ OFS = FS
+}
+
NR == 1 {
- nfld = NF
for (i=1; i<=NF; i++)
numcol[i] = isnum($i)
}
-{
+
+NF > 0 {
+ (NF > nf_max) ? nf_max = NF : nf_max = nf_max
for (i=1; i<=NF; i++)
if (numcol[i])
sum[i] += $i
}
+
END {
- for (i=1; i<=nfld; i++) {
+ for (i=1; i<=nf_max; i++) {
printf(numcol[i] ? sum[i] : "--")
- printf(i < nfld ? OFS : ORS)
+ printf(i < nf_max ? OFS : ORS)
}
}