我有一个包含数字表的文件;第一行是标题行。我想使用 awk 对每列求和并打印出每列的总和和列名称。
我该怎么做?
答案1
假设每行具有相同数量的字段(列):
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