blob: 8ceda8bc0123e3f5c75cb04c98dca431be06e3ea (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#!/usr/bin/awk -f
### sum3.awk, print sums of numeric columns
# input: rows of integers and strings
# output: sums of numeric columns
# assumes every line has same layout
function isnum(n) {
return n ~ /^[+-]?[0-9]+$/
}
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++) {
(numcol[i]) ? printf("%g", sum[i]) : printf("--")
printf(i < nfld ? " " : "\n")
}
}
|