2016-07-18 86 views
-3

我想合併相似的行以創建一個唯一的輸出矩陣,它將-符號之後的計數相加。請參閱我下面的例子:合併具有相似ID和總和對應值的行

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 
+3

Upvoter ...請解釋:) – toolic

+2

@toolic我見過的更好的評論之一:) – zdim

+0

當你說「相似」,我認爲你的意思是「相同」? – Borodin

回答

3

您可以使用awk的關聯數組:

awk '{split($1,a, "-"); arr[$2]+=a[2]} END{for(i in arr) print i, arr[i]}' file 
2

如果記錄已經由NC_xxxx數字排序,你可以不用數組(您也可以在使用前對文件進行排序sort

awk -F'[- ]' 'o!=$3{print o,s;o=$3;s=$2;next}{s+=$2}END{print o,s}' file