Может ли кто-нибудь объяснить, как сгруппировать данные по имени пользователя, а затем суммировать значения и разделить их на количество строк для этого конкретного имени пользователя. Например, как показано ниже.
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