使用 nawk,如何对 、 和 字段中的所有$1
数字$2
求和$3
?
8 6 2
7 3 5
1 9 4
我希望结果是 sum = 45
答案1
nawk 'BEGIN { sum=0; } {sum += $1 + $2 + $3;} END { printf "%d\n", sum } ' a.in
答案2
使用 awk:
awk '{x+=$0;}END{print x}' RS="[ \n]" file
无论行数或列数如何,此方法均可行。通过使用记录分隔符 (RS) 作为空格或换行符,每个值都会被拆分为单独的行,因此可以轻松添加。
答案3
您还可以使用 coreutils 和 bc:
<file head -c-1 | tr ' \n' '++'; echo) | bc
如果应该省略某些列,例如如果输入如下:
A 8 6 2
B 7 3 5
C 1 9 4
cut
可以选择想要的:
<file cut -d' ' -f2- | head -c-1 | tr ' \n' '++'; echo) | bc
两种情况下的输出:
45