誰でもユーザー名でグループ化し、その値をその特定のユーザー名の行数で割った値を合計する方法を教えてください。たとえば、次の例です。
root 25 oracle 25 batch 30 griduser 20 admin 35
root 55 oracle 45 batch 30 griduser 10
oracle 35 batch 30 griduser 30 xuser 45 admin 85
私の出力は次のようになります。
root 40 oracle 35 batch 30 griduser 20 xuser 45 admin 60
事前にありがとう
ベストアンサー1
出力順序が気に入らない場合は、次のようにします。
$ awk '{for(i=1;i<NF;i+=2){a[$i]+=$(i+1);b[$i]+=1}}
END {
for(i in a){
printf "%s %d ",i,a[i]/b[i]
}
printf "\n"
}' file
oracle 35 griduser 20 admin 60 root 40 xuser 45 batch 30