¿Alguien puede aclararme cómo agrupar según el nombre de usuario y sumar los valores, dividirlos por el número de filas de ese nombre de usuario específico? por ejemplo a continuación.
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
Mi salida debería ser la siguiente.
root 40 oracle 35 batch 30 griduser 20 xuser 45 admin 60
Gracias de antemano
Respuesta1
Si no le importa el orden de salida:
$ 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