我有以下表格分隔表:
NM_000057 0
NM_000059 0
NM_000060 0
NM_000061 0
NM_000062 0
NM_000063 0
NM_000063 0
NM_000063 3
NM_000063 2
NM_000063 0
NM_000063 0
NM_000063 0
NM_000064 0
NM_000065 0
NM_000066 0
NM_000067 0
NM_000068 0
NM_000069 0
NM_000070 0
我想查找第一个值,如果有多个相等的值,我想合并它并添加第二列中的值。在示例中:
NM_000057 0
NM_000059 0
NM_000060 0
NM_000061 0
NM_000062 0
**NM_000063 5**
NM_000064 0
NM_000065 0
NM_000066 0
NM_000067 0
NM_000068 0
NM_000069 0
NM_000070 0
谢谢你!
答案1
使用‘awk’,
awk '{seen[$1]+=$2} END{for (x in seen) print x, seen[x]}' infile > outfile
在上面的 awk 命令中,主要这个 'seen[$1]+=$2' 部分完成工作,变量 $1 作为键字段在匹配键时对第二列的值求和。
最后,我们循环遍历以 x 为变量的 seen 数组,并打印第一列中看到的键,然后打印每个键通过 seen[x] 得出的总结果。