Expressão regular como obter valor no shell script?

1

Eu tenho que escrever um script de shell para obter valor de uma string, algo como:

string="abcdef" pathName

Como posso usar o comando grep com o uso da expressão regular para obter "pathName"?

    
por cat_minhv0 15.09.2012 / 10:05

1 resposta

1

O GNU grep tem a opção --only-matching :

echo 'string="abcdef" pathName' |grep --only-matching "pathName"

produzirá "pathName".

Atualize com mais informações sobre o padrão necessário:

echo 'string="abcdef" pathName' |grep --only-matching "[[:graph:]]*$"

Aqui [[:graph:]] é a classe de caracteres de todos os caracteres não espaciais, * significa zero ou mais do padrão anterior, $ significa fim de linha.
Portanto, o padrão corresponde à sequência mais longa de caracteres não espaciais no final da linha.

    
por 15.09.2012 / 10:28