Shell-shell如何实现多个文件对应列值相加

服务器管理 服务器管理 主题:1035 回复:2217

Shell-shell如何实现多个文件对应列值相加

虐人心 发布于 2017-08-18 字数 284 浏览 1053 回复 2

有文件1.txt、2.txt和3.txt
1.txt内容:
1 1
2 2
3 3
2.txt内容:
2 6
4 7
3 1
3.txt内容:
1 4
2 4
5 3
经过以第一列为基准对第二列数据进行相加处理后得到
1 5
2 12
3 4
4 7
5 3
求shell实现方法。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

偏爱自由 2017-10-25 2 楼

用awk能够实现:

cat 1.txt 2.txt 3.txt|awk -F" " '{a[$1]=a[$1]+$2;}END{for(i=1;i<=length(a);i++)if(a[i]~/^[0-9]+$/)print i,a[i];}'

归属感 2017-09-23 1 楼

我也提供一个:

awk '{n[$1]=n[$1]+$2} END {for (e in n) print e " " n[e] > "./d.txt"}' 1.txt 2.txt 3.txt

上面这个执行完后结果顺序不一样,可以sort一下:

 4 7
5 3
1 5
2 12
3 4