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