按一个字段合并行

时间:2018-05-02 10:19:41

标签: linux awk merge

我有一个这样的文件:

readA    chr1    229665946 229666155 +  ABCB10  NM_012089   exon6
readA    chr1    229667383 229667478 +  ABCB10  NM_012089   exon7
readA    chr1    229675203 229675338 +  ABCB10  NM_012089   exon8
readB    chr2    229675000 229675888 +  KGB09   NM_022158   exon2

我希望将它合并到第一列,如下所示:

readA    chr1    229665946 229675338 +  ABCB10  NM_012089   exon6,exon7,exon8
readB    chr2    229675000 229675888 +  KGB09   NM_022158   exon2

所以第一列和染色体位置合并,我试图通过awk或bedtool合并解决这个问题,但失败了。有人可以帮帮我吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

以下内容对您有帮助。

awk '{a[$1]=a[$1]?a[$1] OFS $NF:$0} END{for(i in a){print a[i]}}' OFS=,   Input_file