我想组合相似的行来创建一个独特的输出矩阵,该矩阵将-
符号后的计数求和。请参阅下面的示例:
278-3192 NC_002188.1
310-2831 NC_007653.1
384-2206 NC_004068.1
1059-573 NC_004068.1
输出
NC_002188.1 3192
NC_007653.1 2831
NC_004068.1 2779
答案 0 :(得分:3)
您可以使用awk的关联数组:
awk '{split($1,a, "-"); arr[$2]+=a[2]} END{for(i in arr) print i, arr[i]}' file
答案 1 :(得分:2)
如果记录已按NC_xxxx编号排序,则可以不使用数组进行排序(您也可以在使用sort
之前对文件进行排序):
awk -F'[- ]' 'o!=$3{print o,s;o=$3;s=$2;next}{s+=$2}END{print o,s}' file