Pular para o conteúdo

egrep com expressão regular [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. egrep com expressão regular [RESOLVIDO]

Enviado em 14/02/2013 - 13:44h

Olá pessoal,

Estou precisando de uma ajuda de vcs novamente.

Dado um script, preciso encontrar todas as linhas que tenham uma definição de função. Exemplo:


function soma( param1, param2 ){
functionName = "soma"

return param1 + param2
}
Neste exemplo, eu preciso retornar a linha "function soma( param1, param2 ){".

Estou tentando fazer da seguinte forma:


#linhas contendo a palavra "function" seguida de espaços, tabs, ou "("
egrep "function[\s\t\(]*"
Contudo, desta forma está retornando tando a primeira linha, quanto a segunda:


function soma( param1, param2 ){
functionName = "soma"
Alguém poderia me explicar o que está errado? como eu faria para pegar só a primeira linha?

Responder tópico

2. Re: egrep com expressão regular [RESOLVIDO]

Melhor resposta

Enviado em 14/02/2013 - 16:45h

Cara, outra alternativa seria usar assim:

$grep -w ^function

O '-w' pega exatamente o que você está buscando, sem texto antes ou depois e o '^' significa "tudo que começa com...".

3. Resolvido!

Enviado em 14/02/2013 - 14:15h

Pessoal, consegui resolver com a seguinte expressão regular:


egrep "function\b"
Sinceramente não sei porque desta forma
egrep "function[\s\t\(]*" 
não funciona.

Se algumém souber, compartilhe!

4. Re: egrep com expressão regular [RESOLVIDO]

Enviado em 14/02/2013 - 16:02h

Funciona, sim. O problema é que a expressão regular que você colocou estava genérica demais: a parte entre colchetes foi seguida por um asterisco, que significa zero ou mais ocorrências. Com zero ocorrências, "functionData" corresponde à expressão.

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder