Bem, se o seu shell suporta matrizes, você pode fazer:
$ infoC=( $(sed -n 's/Info C: \(.*\)//p' file ) )
$ echo ${infoC[0]}
3
$ echo ${infoC[1]}
123
Ou com o GNU sed
:
infoC=($(sed -rn 's/Info C: (.*)//p' file ))
Estou usando um comando sed
mais simples aqui. O -n
suprime a saída normal, portanto, imprime apenas as linhas para as quais você diz. O operador de substituição corresponde às linhas com Info C:
e captura (com os parênteses) o valor que é salvo como . Por isso, irá substituir a linha com
e imprimi-la (o
p
no final).
O var=( $(command) )
é uma maneira de salvar a saída de command
na matriz var
. O primeiro elemento é então ${var[0]}
, o segundo ${var[1]}
etc. Aqui, o nome da matriz é infoC
.