누구든지 사용자 이름을 기준으로 그룹화하고 값의 합계를 해당 특정 사용자 이름의 행 수로 나누는 방법을 알려줄 수 있습니까? 예를 들면 아래와 같습니다.
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