From 4c4eb1bd8f003b3b57707badd2dd089ed193a896 Mon Sep 17 00:00:00 2001 From: wukong Date: Fri, 10 Apr 2026 23:46:12 -0700 Subject: renamed fir window generators; minor edits to whitespace and comments for more consistent style; --- sum1.awk | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) (limited to 'sum1.awk') diff --git a/sum1.awk b/sum1.awk index 8f1419b..9266789 100644 --- a/sum1.awk +++ b/sum1.awk @@ -5,15 +5,35 @@ # output: sum of each column # missing entries are treated as zeros -BEGIN { OFS = FS } -{ - if (NF > nf_max) - nf_max = NF +function isnum(n) { + sign = "[+-]?" + decimal = "[0-9]+[.]?[0-9]*" + fraction = "[.][0-9]+" + exponent = "([Ee]" sign "[0-9]+)?" + number = "^" sign "(" decimal "|" fraction ")" exponent "$" + return n ~ number +} + + +BEGIN { + OFS = FS +} + + +NR == 1 { + for (i=1; i<=NF; i++) + isnum($i) ? header[i] = "col" i : header[i] = $i +} + + +NF > 0 { + (NF > nf_max) ? nf_max = NF : nf_max = nf_max for (i=1; i<=NF; i++) sum[i] += $i } + END { for (i=1; i<=nf_max; i++) { printf(OFMT, sum[i]) -- cgit v1.2.3