Поиск литерала "> \" с помощью ack-grep
Я ищу строки, которые буквально имеют символ больше, чем (">"), за которым следует пробел, за которым следует символ обратной косой черты ("\"), т. Е. Строка с этим:> \
Я думал, что побег позволит это, и для большего, чем это делает:
$ ack-grep "\>"
возвращает строки, в которых есть ">".
Но когда я пытаюсь избежать обратной косой черты, я получаю:
$ ack-grep "\> \\"
ack-grep: Неверное регулярное выражение '\> \':
Трейлинг \ в регулярном выражении m/\> /
4 ответа
Вау, я был так близко... одинарные кавычки:
$ ack-grep '\> \\'
Я понял это после того, как подтвердил, что мое соответствие регулярному выражению действительно с использованием: http://regexpal.com/ и у него просто были одинарные кавычки при попытке чего-то другого.
Это также работает:
$ ack-grep '> \\'
и так же:
$ ack-grep "> \\\\"
Больше чем не нужно избегать.
Для поиска буквенных строк используйте опцию literal:
ack-grep --literal '> \'
Обратите внимание, что проблема здесь не в ack, а в цитировании оболочки. У вас возникла бы проблема с любой программой, которую вы пытались передать в качестве аргумента "> \".