如何使用awk对每列求和并打印列名和列总和?

bur*_*cak 2 awk text-processing statistics arithmetic

我有一个带有数字表的文件;第一行是标题行。我想对每列求和并使用 awk 打印出每列的总和和列名。

我该怎么做?

G-M*_*ca' 5

假设每一行都有相同数量的字段(列):

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 }
    '
Run Code Online (Sandbox Code Playgroud)

样本输入:

red green blue
1 2 4
8 16 32
64 128 256
Run Code Online (Sandbox Code Playgroud)

对应的输出:

red=73
green=146
blue=292
Run Code Online (Sandbox Code Playgroud)