使用 nawk,如何对 $1、$2 和 $3 字段中的所有数字求和?

使用 nawk,如何对 $1、$2 和 $3 字段中的所有数字求和?

使用 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

相关内容