Назад | Перейти на главную страницу

Поиск буквального «> \» с помощью ack-grep

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

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

  $ ack-grep "\> "

возвращает строки с символом ">".

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

  $ ack-grep "\> \\"

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

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

$ ack-grep '\> \\'

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

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

$ ack-grep '> \\'

и так делает:

$ ack-grep "> \\\\"

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

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

ack-grep --literal '> \'

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