任何人都可以告诉我如何根据用户名进行分组,并将值求和除以该特定用户名的行数。例如下面的例子。
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