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(
$