任何人都可以告訴我如何根據使用者名稱分組,並將值求和除以該特定使用者名稱的行數。例如下面的例子。
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