각 대기열의 수를 계산해야 합니다 Nodes_Util
. 아래 예에는 queue1
행이 하나만 있지만 다릅니다. 때로는 아무것도 없을 수도 있으며 모든 대기열에 대해 작동합니다.
존재하는 경우 열에 숫자를 동적으로 추가하고 싶습니다.
Queue | JOB_ID | Tasks | ptile | Nodes_Util
queue1 | 220412 | 317 | 8 | 39
queue2 | 183623 | 317 | 16 | 19
queue2 | 220297 | 192 | 8 | 24
queue2 | 220298 | 192 | 8 | 24
queue2 | 220299 | 192 | 8 | 24
queue2 | 220300 | 192 | 8 | 24
queue2 | 220301 | 192 | 8 | 24
queue2 | 220302 | 192 | 8 | 24
queue2 | 220303 | 192 | 8 | 24
queue2 | 220304 | 192 | 8 | 24
queue2 | 220305 | 192 | 8 | 24
queue3 | 214071 | 187 | 16 | 11
queue3 | 214706 | 173 | 16 | 10
queue3 | 219981 | 128 | 16 | 8
queue3 | 220352 | 512 | 16 | 32
queue4 | 218227 | 576 | 16 | 36
queue4 | 220371 | 192 | | 12
queue5 | 218106 | 256 | 16 | 16
queue5 | 220138 | 32 | 8 | 4
queue5 | 220382 | 16 | 8 | 2
queue5 | 220396 | 16 | 16 | 1
queue5 | 220403 | 16 | 16 | 1
queue5 | 220427 | 16 | 16 | 1
queue5 | 220566 | 32 | 8 | 4
queue6 | 219249 | 256 | 16 | 16
queue6 | 219267 | 256 | 16 | 16
queue6 | 220001 | 256 | 16 | 16
각 대기열에서 사용되는 노드 수를 알아야 합니다.
답변1
이런 식으로 작동 할 것입니다
awk -F" *| *" 'NR>1{a[$1]+=$NF}END{for(i in a)print i,a[i]}' file
산출
queue3 61
queue4 48
queue5 29
queue6 48
queue1 39
queue2 235
아니면 당신의 예처럼 순서대로 되어 있다면
awk -F" *| *" 'NR==1{next}t!=$1{print t,x;x=""}{x+=$NF;t=$1}END{print t,x}' file
산출
queue1 39
queue2 235
queue3 61
queue4 48
queue5 29
queue6 48