diff options
| author | wukong <wukong@longaeva> | 2018-06-05 22:34:51 -0700 |
|---|---|---|
| committer | wukong <wukong@longaeva> | 2018-06-05 22:34:51 -0700 |
| commit | 8f263e859e0970ce87b77addc80dec28e8fc7e82 (patch) | |
| tree | b0bdc392230c9960f5e5f5b3dea979405334628f /sum3.awk | |
re-init
Diffstat (limited to 'sum3.awk')
| -rw-r--r-- | sum3.awk | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/sum3.awk b/sum3.awk new file mode 100644 index 0000000..b4100a7 --- /dev/null +++ b/sum3.awk @@ -0,0 +1,31 @@ +### sum3.awk, print sums of numeric columns +# input: rows of integers and strings +# output: sums of numeric columns +# assumes every line has same layout + +NR==1 { + nfld = NF + for (i=1; i<=NF; i++) + numcol[i] = isnum($i) +} + +{ + for (i=1; i<=NF; i++) + if (numcol[i]) + sum[i] += $i +} + +END { + for (i=1; i<=nfld; i++) { + if (numcol[i]) + printf("%g", sum[i]) + else + printf("--") + printf(i < nfld ? " " : "\n") + } +} + +function isnum(n) { + return n ~ /^[+-]?[0-9]+$/ +} + |
