diff options
Diffstat (limited to 'sum1.awk')
| -rw-r--r-- | sum1.awk | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/sum1.awk b/sum1.awk deleted file mode 100644 index 9266789..0000000 --- a/sum1.awk +++ /dev/null @@ -1,43 +0,0 @@ -#!/usr/bin/awk -f - -### sum1.awk, print column sums -# input: rows of numbers -# output: sum of each column -# missing entries are treated as zeros - - -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]) - printf((i < nf_max) ? OFS : ORS) - } -} - |
