Obtém parte da string que corresponde a regex

1

Estou escrevendo um script e tentando analisar um arquivo para obter uma versão do software. A saída é:

Version 13.0.R7.0 - Built on Tue Feb 09 18:47:29 EST 2016

Eu quero extrair o 13.0 (depois, vou cortar o .0 ) com o regex ^1[0-9]\.0 e extrair o R7 com R[0-9]{1} .

Eu sei como combiná-los, eu só não sei como colocar o valor que corresponde a regex em uma variável, é tal coisa possível?

    
por Brydon Gibson 26.07.2016 / 21:25

1 resposta

2

Com o GNU bash:

echo 'Version 13.0.R7.0 - Built on Tue Feb 09 18:47:29 EST 2016' | while IFS=" ." read -r a b c d rest; do echo $b $c $d; done

ou

while IFS=" ." read -r a b c d rest; do echo $b $c $d; done < filename

Saída:

13 0 R7
    
por 26.07.2016 / 21:32