Pegando um número da saída de string na linha de comando

2

Como faço para pegar apenas o número de uma saída de linha de comando.

Por exemplo, eu tenho um programa que, ao ser executado, gera uma string como

submitted batch with job number 12345

Eu gostaria de pegar apenas o número 12345 e canalizá-lo para outro programa.

    
por Adi279 10.10.2017 / 20:34

1 resposta

2

A forma mais simples de obter apenas o número da string que você forneceu é a seguinte.

string="submitted batch with job number 12345"
echo $string | grep -o '[0-9]\+'

Isso falhará se a string ou a saída do seu programa incluir um segundo grupo de números, como

string="submitted 1 batch with job number 12345"

Nesse caso, você poderia usar sed para, por exemplo procure pela string número e apenas corresponda por números após essa ocorrência.

echo $string | sed -n 's/^.*number\ \([0-9]\+\)//p'
    
por Thomas 10.10.2017 / 20:50