Alguém pode me esclarecer como agrupar com base no nome de usuário e somar os valores, dividi-los pelo número de linhas desse nome de usuário específico. por exemplo abaixo.
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
Minha saída deve ser a seguinte.
root 40 oracle 35 batch 30 griduser 20 xuser 45 admin 60
Desde já, obrigado
Responder1
Se você não se importa com a ordem de saída:
$ 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