Procurando pelo literal “\” usando o comando ack-grep

9

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

Eu pensei que escapar permitiria isso, e para o maior do que isso:

  $ ack-grep "\> "

retorna linhas que têm ">" nelas.

Mas quando eu tento escapar da barra invertida, fico:

  $ ack-grep "\> \"

ack-grep: regex inválido '\ > \ ':
  Trailing \ na regex m / \ > /

    
por Stephen Gornick 01.06.2010 / 03:01

4 respostas

6

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:    link e aconteceu de ter tido citações simples de tentar outra coisa.

    
por 01.06.2010 / 03:12
5

Isso também funciona:

$ ack-grep '> \'

e assim:

$ ack-grep "> \\"

O maior que não precisa ser escapado.

    
por 01.06.2010 / 03:24
1

Para pesquisar sequências literais, use a opção literal:

ack-grep --literal '> \'
    
por 21.03.2014 / 14:24
0

Por favor, note que o problema aqui não é com ack, mas com o shell citando. Você teria esse problema com qualquer programa que estivesse tentando passar "> \" como argumento.

    
por 01.06.2010 / 06:34