我有这样的文件,其中一些行在前3列中相同,第4列中的值不同。如果前3列相同,我想要汇总第4列中的所有值:
chr1 241783 286397 52
chr1 241783 286397 53
chr1 241783 286397 53
chr2 10500 25700 57
chr2 10500 25700 59
chr2 10500 25700 59
我想要输出文件如下:
chr1 241783 286397 158
chr2 10500 25700 175
我可以使用awk
打印出文件中的单个相同值,我在awk '!array[$1,$2,$3]++'
的帖子中看到了这个值。但我想总结一下。
答案 0 :(得分:2)
这应该可以解决问题:
$ awk '{a[$1FS$2FS$3]+=$4}END{for(k in a)print k,a[k]}' file
chr2 10500 25700 175
chr1 241783 286397 158