0

我有这样的文件,其中前 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]++'但我想对它们求和。

4

1 回答 1

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
于 2013-04-24T20:38:12.073 回答