해당 열에 숫자가 있으면 추가하세요.

해당 열에 숫자가 있으면 추가하세요.

각 대기열의 수를 계산해야 합니다 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

관련 정보