Recherche du littéral «> \» à l'aide de ack-grep


9

Je recherche des lignes qui ont littéralement un caractère supérieur à (un ">") suivi d'un espace suivi d'un caractère barre oblique inverse (un "\") c'est-à-dire une ligne avec ceci:> \

Je pensais que s'échapper permettrait cela, et pour le plus grand qu'il ne le fait:

  $ ack-grep "\>"

renvoie des lignes contenant ">".

Mais quand j'essaie également d'échapper à la barre oblique inverse, je reçois:

  $ ack-grep "\> \\"

ack-grep: Regex invalide '\> \':
Trailing \ in regex m / \> /

Réponses:


6

Wow, j'étais si proche ... citations simples:

$ ack-grep '\> \\'

J'ai compris cela après avoir confirmé que ma correspondance d'expressions régulières était valide en utilisant: http://regexpal.com/ et il se trouve que j'ai eu des guillemets simples en essayant autre chose.



1

Pour rechercher des chaînes littérales, utilisez l'option littérale:

ack-grep --literal '> \'

0

Veuillez noter que le problème ici n'est pas avec ack mais avec la citation du shell. Vous auriez ce problème avec n'importe quel programme que vous essayez de passer en argument "> \".


Ouais, si j'avais su cela en premier: mpi-inf.mpg.de/~uwe/lehre/unixffb/quoting-guide.html 3.1.11 Les règles d'or du shell Bourne citant tout le reste qui pourrait être maltraité par le shell est protégé par Guillemets simples.
Stephen Gornick
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.