2016-07-18 7 views
-3

Ich möchte ähnliche Zeilen kombinieren, um eine eindeutige Ausgabematrix zu erstellen, die die Anzahl nach dem - Zeichen summiert. Sehen Sie bitte mein Beispiel unten:Linien mit ähnlicher ID zusammenführen und entsprechende Werte summieren

278-3192 NC_002188.1 
310-2831 NC_007653.1 
384-2206 NC_004068.1 
1059-573 NC_004068.1 

Ausgang

NC_002188.1 3192 
NC_007653.1 2831 
NC_004068.1 2779 
+3

Upvoter ... bitte erklären :) – toolic

+2

@toolic Einer der besseren Kommentare, die ich gesehen habe :) – zdim

+0

Wenn Sie "ähnlich" sagen, nehme ich an, Sie meinen "identisch"? – Borodin

Antwort

3

Sie assoziatives Array awk die verwendet werden können:

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

Wenn die Datensätze bereits sortiert sind durch NC_xxxx Zahlen, können Sie es tun, ohne Array (Sie können die Datei auch vor der Verwendung von sort sortieren):

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