From 8f263e859e0970ce87b77addc80dec28e8fc7e82 Mon Sep 17 00:00:00 2001 From: wukong Date: Tue, 5 Jun 2018 22:34:51 -0700 Subject: re-init --- sum3.awk | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 sum3.awk (limited to 'sum3.awk') 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]+$/ +} + -- cgit v1.2.3