Подтвердить что ты не робот

Ack - Игнорирование нескольких каталогов без повторения флага

Можно ли игнорировать несколько каталогов в Ack, не повторяя флаг?

например. Я знаю следующие работы (т.е. Установка нескольких флагов):

ack --ignore-dir=install --ignore-dir=php 'teststring'

Я надеялся, что я могу разделить каталоги запятыми, как я могу сделать с расширениями следующим образом:

ack --ignore-file=ext:css,scss,orig 'teststring'

Однако следующий флаг игнорирования, разделенный запятой, не работает:

ack --ignore-dir=install,php 'textstring'

Можно ли использовать некоторый короткий эквивалент, поэтому мне не нужно многократно печатать флаг -ignore-dir?

4b9b3361

Ответ 1

На самом деле это похоже на то, как вы укажете шаблоны include для grep:

ack <term> --ignore-dir={dir_a,dir_b}

Однако этот формат не работает с одним каталогом. Так

ack <term> --ignore-dir={log}

не будет работать.

Ответ 2

Поскольку вы используете ack 2, вы можете поместить --ignore-dir=install и --ignore-dir=php в файл .ackrc в корень вашего проекта. Затем каждый вызов ack в этом дереве будет использовать эти флаги.

Ответ 3

Итак, чтобы игнорировать использование одного каталога

ack <term> --ignore-dir=dir_a

и для игнорирования нескольких каталогов используйте

ack <term> --ignore-dir={dir_a,dir_b}

Ответ 4

Одним из подходов может быть выбор этих каталогов для исключения с помощью регулярного выражения в опции -G, дополненной опцией --invert-file-match. Основываясь на вашем вопросе, примерно следующее:

ack -a -G 'install|php' --invert-file-match 'textstring' .