Поиск литерала «> \» с помощью ack-grep


9

Я ищу строки, которые буквально имеют символ больше чем («>»), за которым следует пробел, за которым следует символ обратной косой черты («\»), то есть строка с этим:> \

Я думал, что побег позволит это, и для большего, чем это делает:

  $ ack-grep "\>"

возвращает строки, в которых есть «>».

Но когда я пытаюсь избежать обратной косой черты, я получаю:

  $ ack-grep "\> \\"

ack-grep: Неверное регулярное выражение '\> \':
Конечный \ в регулярном выражении m / \> /

Ответы:


6

Вау, я был так близко ... одинарные кавычки:

$ ack-grep '\> \\'

Я понял это после того, как подтвердил, что мое соответствие регулярному выражению действительно с использованием: http://regexpal.com/, и у него просто были одинарные кавычки при попытке чего-то другого.




0

Обратите внимание, что проблема здесь не в ack, а в цитировании оболочки. Эта проблема возникает у любой программы, которую вы пытаетесь передать в качестве аргумента "> \".


Да, если бы я знал это первым: mpi-inf.mpg.de/~uwe/lehre/unixffb/quoting-guide.html 3.1.11 Золотые правила цитирования оболочки Bourne Все остальное, что может подвергаться жестокому обращению со стороны оболочки, защищено одинарные кавычки.
Стивен Горник
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.