linux - 按一个字段合并行

标签 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 merge 解决这个问题但失败了。有人可以帮助我吗?非常感谢!

最佳答案

以下可能对您有帮助。

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

关于linux - 按一个字段合并行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50132248/

相关文章:

c - 如何计算 Linux 中进程的开始时间?

python - 从 Python 中的分隔字符串创建双引号条目列表

bash - 如何删除远程机器上 authorized_keys 文件中的重复行

bash - 如果找到数字,如何按模式在 bash 中拆分文件

PYTHON - 合并日期索引上的两个数据帧

php - 使用 PHP 将图像添加到 mp3 文件的最佳方法?

linux - 我想使用命令打印上个月最后一个日期,时间戳为 '23:59:59'

php - 如何在 Ubuntu 19.04 上安装 php7.4?

java - 我可以在 Oracle 中进行原子 MERGE 吗?

pandas - 如何在数据框 Pandas 中合并两行