regex grep ack

regex - ack grep



Escapando un paréntesis en grep/ack (2)

Hay dos cosas que interpretan el ( : el shell y el ack-grep .

Puede usar '''' , "" o / para escapar del ( desde el shell, por ejemplo,

grep ''methodname('' * grep "methodname(" * grep methodname/( *

grep usa un lenguaje básico de expresiones regulares de forma predeterminada, por lo que ( no es especial. (Lo sería si usara egrep o grep -E o grep -P ).

Por otro lado, ack-grep toma expresiones regulares de Perl como entrada, en la cual ( también es especial, por lo que tendrás que escapar de eso también).

ack-grep ''methodname/('' * ack-grep "methodname//(" * ack-grep methodname///( * ack-grep ''methodname[(]'' * ack-grep "methodname[(]" * ack-grep methodname/[/(/] *

Quiero buscar la cadena "nombre de método ("), pero no puedo escapar de la "(". ¿Cómo puedo obtener

grep methodname( *

o

ack-grep methodname( *

¿trabajar?


Intente agregar un / antes de ( .

Pequeña demo:

$ cat file bar methodname( foo $ grep -n methodname/( file 2:methodname( $

Encerrar el patrón entre comillas simples o dobles también funciona:

$ grep -n ''methodname('' file 2:methodname( $ grep -n "methodname(" file 2:methodname( $