Procurando por literal "> \" usando ack-grep

Procurando por literal "> \" usando ack-grep

Estou procurando linhas que tenham literalmente um caractere maior que (um ">") seguido por um espaço seguido por um caractere de barra invertida (um "\") ou seja, uma linha com isto: > \

Achei que escapar permitiria isso, e para maior do que isso:

  $ ack-grep "\>"

retorna linhas que contêm ">".

Mas quando tento escapar da barra invertida também recebo:

  $ ack-grep "\> \\"

ack-grep: Regex inválida '\> \':
Trailing \ em regex m/\> /

Responder1

Nossa, eu estava tão perto... aspas simples:

$ ack-grep '\> \\'

Descobri isso depois de confirmar que minha correspondência de regex era válida usando: http://regexpal.com/ e por acaso tive aspas simples ao tentar outra coisa.

Responder2

Isso também funciona:

$ ack-grep '> \\'

e o mesmo acontece:

$ ack-grep "> \\\\"

O maior que não precisa ser escapado.

Responder3

Para pesquisar strings literais, use a opção literal:

ack-grep --literal '> \'

Responder4

Observe que o problema aqui não é com o ack, mas com a citação do shell. Você teria esse problema com qualquer programa que estivesse tentando passar "> \" como argumento.

informação relacionada