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