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

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

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

  $ ack-grep "\>"

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

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

  $ ack-grep "\> \\"

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

4 ответа

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

$ ack-grep '\> \\'

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

Это также работает:

$ ack-grep '> \\'

и так же:

$ ack-grep "> \\\\"

Больше чем не нужно избегать.

Для поиска буквенных строк используйте опцию literal:

ack-grep --literal '> \'

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

Другие вопросы по тегам