gno/usr.bin/awk/tests/sum3

26 lines
617 B
Plaintext
Raw Normal View History

# sum3 - 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 ? "\t" : "\n")
}
}
function isnum(n) { return n ~ /^[+-]?[0-9]+$/ }