2番目の列の値が等しい場合、値を合計

2番目の列の値が等しい場合、値を合計

Unixスクリプトを使用して、列2のテキストが同じ場合は、列1の値を加算して合計を印刷しようとします。次のファイルがあります。

7 GeneA
2 GeneB
6 GeneC
2 GeneB
9 GeneA

出力が次のようになります。

16 GeneA
4  GeneB
6  GeneC

ありがとう

ベストアンサー1

使用アッスクリプト:

awk '{ a[$2]+=$1 }END{ for(i in a) print a[i],i }' file
  • a[$2]+=$1- 各グループの価値を累積する(「グループ」2番目のフィールドの固有値と見なされ、配列aインデックスとして使用されます)

出力:

16 GeneA
4 GeneB
6 GeneC

おすすめ記事