列 1 に識別子のリストがあり、列 2 に対応する数があります。ファイルは次のようになります。
KDO65387 65
KDO65387 27
XP_006465447 971
XP_006482015 1207
XP_003630414 194
XP_002513282 500
XP_003630414 23
私が望むのは、1列の値が連続した行で一致する場合は、2列の値を合計することです。出力は次のとおりです。
KDO65387 92
XP_006465447 971
XP_006482015 1207
XP_003630414 217
XP_002513282 500
ベストアンサー1
順序が重要な場合:
awk '!($1 in sum) {f[n++] = $1}
{sum[$1] += $2}
END {for (i = 0; i < n; i++) print f[i], sum[f[i]]}' < file
そうでない場合は、次のように単純化できます。
awk '{sum[$1] += $2}
END {for (f in sum) print f, sum[f]}' < file