Как не допустить путаницы сценария оболочки с помощью Ack PATTERN?
Я пытаюсь использовать ack для поиска (в файлах на Haskell) +|+
Я посмотрел на ack-grep: символы уходят, но это не помогает
В Mac OS X 10.6 я получаю следующие ответы:
$ ack -Q +|+
-bash: +: command not found
Missing option after +
ack: See ack --help, ack --help-types or ack --man for options
$ ack \+\|\+
Unknown option: |
ack: See ack --help, ack --help-types or ack --man for options
$ ack [+][|][+]
-bash: ][+]: command not found
ack: Invalid regex '[+][':
Unmatched [ in regex; marked by <-- HERE in m/[+][ <-- HERE /
$ ack \Q+|+\E
-bash: +E: command not found
Это в основном все предложения в вопросах и ответах, перечисленных выше
2 ответа
Решение
Это должно работать как задумано:
$ ack "\+\|\+"
(Отредактировано, чтобы быть правильным в соответствии с вашими комментариями. Без кавычек "или".)
-Q
процитирует все в вашей строке поиска.
ack --haskell -Q '+|+'
что проще чем
ack --haskell "\+\|\+"