我有一个文件 abc.csv ,其中包含如下数据:
abc.csv
:
A B C D
a x p 1
a x p 6
b y q 5
b y q 3
a x p 2
a y q 7
我需要编写一个脚本来awk
获取输出文件。这可以用一个来完成吗awk
?
output.csv
a x p 9
b y q 8
状况:
- ABCD 是文件头,仅供参考。
- 我们需要聚合 A 列,以便输出文件中具有唯一的 A 列。
- 仅聚合 B 列和 C 列值相似的那些行,否则忽略该行,如忽略第 6 行。
- 在迭代每行时添加 D 列值。
答案1
Awk
解决方案:
awk '{ k = $1 OFS $2 OFS $3 }
{ sum[k] += $4; count[k]++ }
END{ for (i in sum) if (count[i] > 1) print i, sum[i] }' abc.csv
输出:
a x p 9
b y q 8