Text-Processing

如何使用 awk 對每列求和並列印列名和列總和?

  • May 22, 2019

我有一個帶有數字表的文件;第一行是標題行。我想對每一列求和,並使用 awk 列印出每一列的總和和列名。

我該怎麼做?

假設每一行都有相同數量的欄位(列):

awk '
   NR==1   { for (i=1; i<=NF; i++) header[i]=$i; next; }
           { for (i=1; i<=NF; i++) total[i] += $i; }
   END     { for (i=1; i<=NF; i++) print header[i] "=" total[i]+0 }
   '

樣本輸入:

red green blue
1 2 4
8 16 32
64 128 256

對應輸出:

red=73
green=146
blue=292

引用自:https://unix.stackexchange.com/questions/520250