如何从以下数据中获取按地区划分的销售额和成本总计?
Region Sales Cost
North 139 35
South 786 295
South 312 117
East 288 108
North 149 56
West 508 127
North 145 54
South 379 142
East 500 188
例如。
North 433 145 and so on
最佳答案
简单!,只需使用两个数组。
awk 'NR>1{uniqueSales[$1]+=$2; uniqueCost[$1]+=$3; next}
END{for (i in uniqueSales) print i,uniqueSales[i],uniqueCost[i]}' file
代码通过跳过第一条记录 NR>1
来工作,其中 NR
是一个特殊变量,用于跟踪每一行的行号 Awk
正在处理。然后我们创建一个 hash-map,索引为 $1
和两个不同的数组 uniqueSales[$1]+=$2; uniqueCost[$1]+=$3
分别增加 $2
和 $3
的值。
一旦处理完所有行。 END
子句打印两个数组的值以获得所需的输出。
South 1477 554
East 788 296
North 433 145
West 508 127
关于awk - 使用awk对两列进行分组和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43307935/