![Awk 根据字段求和 csv 列](https://linux22.com/image/4851/Awk%20%E6%A0%B9%E6%8D%AE%E5%AD%97%E6%AE%B5%E6%B1%82%E5%92%8C%20csv%20%E5%88%97.png)
我有 N 个文件,如下所示:
文件1.txt
Header1,Header2,Header3,Header4,Header5
A,B,RANDOM,1,2
C,D,RANDOM,3,4
文件N.txt
Header1,Header2,Header3,Header4,Header5
A,B,RANDOM,1,2
C,D,RANDOM,3,4
它们都有相同的标题。我想根据 Header1 和 Header2 对 Header4 和 Header5 进行求和。因此,所有具有字段的项目A,B
都应将 Header4、Header5 相加。
打印类似的东西
A,B,2,4
C,D,6,8
答案1
假设输出的顺序没有要求......
awk '
BEGIN { FS=OFS=SUBSEP="," }
{ s4[$1,$2]+=$4 ; s5[$1,$2]+=$5 }
END { for (k in s4) print k,s4[k],s5[k] }
' file1 ... fileN
(经过编辑和重组以提高易读性。)