shell脚本对多个文件数值相加

举个例子,有多个文件,filename1.csv、filename2.csv、filename3.csv。。。(实际还有很多,列数也比这多,有10列)catfilenam... 举个例子,有多个文件,filename1.csv、filename2.csv、filename3.csv。。。(实际还有很多,列数也比这多,有10列)
cat filename1.csv
2014,name1,1,5,10
2014,name2,1,4,6
2014,name1,0,3,8
2014,name2,0,0,0

cat filename2.csv
2014,name1,1,3,2
2014,name2,0,5,5
2014,name1,0,3,3
2014,name2,1,1,0

cat filename3.csv
2014,name2,1,5,5
2014,name1,1,6,6
2014,name2,0,3,3
2014,name1,0,1,1
希望这三个文件相加后的结果如下:
2014,name1,1,14,18
2014,name1,0,7,12
2014,name2,1,10,11
2014,name2,0,8,8

也就是说,当前三列相等时,后两列数值相加,
前三个不等的,不相加,
文件相加结果保存在一个单独的文件中 > result.csv中
相加的文件中每一行(FNR相等的行)对应的前三列数据不一定一样
本人初级shell脚本,总共只有5分,,求大师解答中,感激不尽。。
展开
 我来答
Linyar
2014-06-05 · TA获得超过757个赞
知道小有建树答主
回答量:180
采纳率:100%
帮助的人:249万
展开全部
awk -F',' '{SUBSEP=",";arr[$1,$2,$3]+=$4;trr[$1,$2,$3]+=$5} END{for (i in arr) print i "," arr[i]","trr[i]}' filename1.csv filename2.csv filename3.csv
输出结果:
2014,name1,0,7,12
2014,name2,0,8,8
2014,name1,1,14,18
2014,name2,1,10,11
希望能帮助到你,你的好评是我前进的动力!谢谢!
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式