awk - 複数列ファイルの追加と分割

awk - 複数列ファイルの追加と分割

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

ABC 1 2  
DEF 3 4  
ABC 4 8    
DEF 7 1 

予想される出力は、最初の列をグループ化し、列2と3の値を追加することです。次に、2列と3列の値を分割し、結果を4列に保存します。

ABC 5 10 0.5   
DEF 10 5 2  

あなたのアドバイスに感謝します。

ベストアンサー1

awk '{r[$1]+=$2;R[$1]+=$3}END{for(i in r){print i" "r[i]" "R[i]" "r[i]/R[i]}}'

読む:

  • 各行に対して、最初の列を$1のインデックスとして保存し、列の累積r+=)合計$2をの値として保存r$3、その列に対しても同じことを行いますR
  • すべての行を読み取ったら(END)合計()、合計()、最後に$1各グループの割合を印刷します。i$2r[i]$3R[i]∑($2)∑($3)

おすすめ記事