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

相關內容