最初の列に基づいてデータをマージする方法は?

最初の列に基づいてデータをマージする方法は?

いくつかの簡単なデータがあります。

digital 5434
ero 3464
3es 69955
digital 1948
ero 5783
ride 5884

この入力ファイルを処理し、最初のフィールドが同じ2番目のフィールド値をすべて合計したいと思います。最終出力ファイルは次のようになります。

digital 7382
ero 9247
3es 69955
ride 5884

awkを使うとこれが可能だと思いましたか?

助けてくれてありがとう。

ベストアンサー1

簡単な方法は次のとおりです。

$ awk '{a[$1]+=$2}END{for(i in a){print i,a[i]}}' data 
ero 9247
3es 69955
digital 7382
ride 5884

これはファイルのほとんどのデータをメモリに保存するため、非常に大きなファイルの場合に問題が発生する可能性があります。

おすすめ記事