Como imprimir strings que combinam com um padrão com grep?

2

Eu quero obter uma lista de strings que correspondam ao seguinte padrão:

CLASS_NAME:"*"

em que * representa qualquer número de caracteres.

Eu tentei:

grep -o CLASS_NAME:\".*\" script.js

e

grep -o CLASS_NAME:\"*\" script.js

O primeiro caso retorna a linha inteira após a string correspondente, enquanto o segundo caso termina no primeiro " . Como posso obtê-lo para retornar apenas a string correspondente?

    
por Question Overflow 02.04.2014 / 14:33

1 resposta

6

Ok, então eu acho que o seu problema é que as marcas de várias citações por linha atraíram mais do que você queria, porque o regex é inerentemente ganancioso - sempre corresponderá o máximo possível, se puder.

A solução é garantir que você corresponda apenas entre as duas marcas de aspas duplas, como:

grep -o 'CLASS_NAME:"[^"]*"' script.js
    
por 02.04.2014 / 14:56

Tags