awkでは、繰り返し性に基づいて値を一致させ、合計を印刷します。

awkでは、繰り返し性に基づいて値を一致させ、合計を印刷します。

次のCSVファイルがあります。

ファイル1

19997,20161108,FSM,EXCHANGE_2,GLOBE,0  
17541,20161108,TATA_MOBILE,WORLD,TELECOM,1  
34556,20161108,europe,state,0  

ファイル2

EXCHANGE_2,CANADA,30298  
WORLD,INDIA,1123  
state,canada,2241  

ファイル1の列4をファイル2の列1と一致させて、これら2つのファイルを結合する新しいファイルをどのように作成しますか?結果は次のとおりです。

19997,20161108,FSM,EXCHANGE_2,GLOBE,0,CANADA,30298
17541,20161108,TATA_MOBILE,WORLD,TELECOM,1,INDIA,1123
34556,20161108,europe,state,0,canada,2241

ベストアンサー1

共通フィールドを介して2つのファイルを結合することは、joinこのコマンドの一般的な作業です。 awk以外のものと答えることができるようにしてください。bashコードは次のとおりです。

join -t, -1 4 -2 1 -o 1.1,1.2,1.3,1.4,1.5,1.6,2.2,2.3 <(sort -t, -k4 file1.csv) <(sort -t, -k1 file2.csv)

おすすめ記事