Se o seu objetivo é extrair esses seis números em variáveis shell, provavelmente é mais conveniente colocá-los em uma matriz bash como esta:
$ data=($(awk '/^ *(par|concurrent)/{printf "%s %s ",$5+0,$7+0}' file))
Você pode verificar se a matriz possui os valores corretos usando declare
:
$ declare -p data
declare -a data='([0]="131008" [1]="0" [2]="131072" [3]="48549" [4]="30000" [5]="19518")'
Se, em vez disso, você quiser apenas imprimir os valores:
$ awk '/^ *(par|concurrent)/{printf "value%s=%s\nvalue%s=%s\n",++c,$5+0,++c,$7+0}' file
value1=131008
value2=0
value3=131072
value4=48549
value5=30000
value6=19518
Como funciona
-
/^ *(par|concurrent)/
Isso corresponde apenas às linhas que começam com
par
ouconcurrent
. -
printf "%s %s ",$5+0,$7+0
Para as linhas combinadas, imprimimos o quinto e o sétimo campos. Adicionando zero a esses valores, forçamos o awk a convertê-los em números. Isso tem o efeito colateral de remover o
k
.