要按第一个字段汇总表格并合并后续列,可以使用awk命令。
假设我们有一个包含以下内容的文件data.txt:
A 1 2 3
B 4 5 6
A 7 8 9
B 10 11 12
我们想要按第一个字段(A或B)汇总表格并将后续列相加。我们可以使用以下awk命令来实现:
awk '{sum[$1]+=$2; sum2[$1]+=$3; sum3[$1]+=$4} END {for (i in sum) print i, sum[i], sum2[i], sum3[i]}' data.txt
输出将是:
A 8 10 12
B 14 16 18
解释如下:
{sum[$1]+=$2; sum2[$1]+=$3; sum3[$1]+=$4}
来对每一行进行处理。这个命令会创建一个数组sum
,以第一个字段作为索引,并将第二、三、四个字段的值加到相应的索引位置上。END
来执行一些最后的操作。END
块中,我们使用for (i in sum)
来遍历sum
数组的所有索引,然后使用print i, sum[i], sum2[i], sum3[i]
来打印每个索引以及对应的累加值。