Expansão de parâmetro no grep

2

Para recuperar strings do seguinte padrão de um arquivo de texto preenchido com várias entradas:

entry=G_1234
entry=G_5678
entry=G_2345

A seguinte declaração do grep não fornece nenhum resultado

grep -ioe "entry=G_{1234,2345}" filename

Você poderia gentilmente orientar sobre onde está o erro ou se a expansão de parâmetros não é possível no grep?

    
por abhishek nair 21.12.2015 / 09:34

2 respostas

3

Ou:

grep -iEo 'entry=G_(1234|2345)'

Isso é usar o operador de alternância de expressões regulares estendidas ( E ).

Ou com shells que suportam expansão de chaves, use:

grep -io '-eentry=G_'{1234,2345}

O shell então expande para:

grep -io -eentry=G_1234 -eentry=G_2345

Fazendo com que grep procure por qualquer uma dessas xpressões 2 e .

    
por 21.12.2015 / 13:17
1

O grep usa expressões regulares, não padrões de shell. Expressões regulares têm sintaxes diferentes:

grep -ioe 'entry=G_\(1234\|2345\)' filename
    
por 21.12.2015 / 12:47