ACK: исключить определенные пути (каталог и его подкаталоги) из поиска.

С ACK 2.x я могу указать параметры командной строки, чтобы исключить определенные каталоги из результатов. . Например, чтобы исключить каталог 'test' я могу использовать:

ack -v -g 'test' | ack -x pattern ('test' может быть регулярным выражением для исключения каталогов)

Я также могу игнорировать каталог, используя .ackrc, добавляя --ignore-dir=save.d к .ackrc или используя его как параметр командной строки. Но кажется, что я не могу исключить пути (каталог и его подкаталоги) с помощью RegEx. Я попытался добавить следующее:

--ignore-dir=match:^\/specific\/path\/to\/test\/.*$

а также следующие варианты

--ignore-dir=match:/^\/specific\/path\/to\/test\/.*$/

--ignore-dir=match:\/specific\/path\/to\/test\/.*

--ignore-dir=match:/specific/path/to/test/.*

--ignore-dir=match:/specific/path/to/test/

(согласно этому пользователю, --ignore-dir и --ignore- файл, и действительно, все сопоставления файлов в ack выполняются с помощью регулярных выражений, не с шаблонами шаблонов оболочки, но я также пытался использовать шаблоны шаблонов оболочки.)

но это дает мне:

Non-is filters are not yet supported for --ignore-dir at /usr/bin/ack line 157

Удаление части "match:" из приведенных выше вариантов не приводит к ошибке, но не исключает и каталоги.

В руководстве говорится, что "вложенные каталоги, такие как foo/bar, НЕ поддерживаются ". Чтобы решить эту проблему, в ACK по крайней мере до ACK 2.12 невозможно исключить определенные каталоги и подкаталоги. Исключить можно только все пути, каталог которых соответствует простой строке или регулярному выражению. Или есть недокументированный хитрый способ обойти это ограничение?


person Gaia    schedule 17.08.2014    source источник
comment
Кстати, одно досадное ограничение...   -  person Gaia    schedule 17.08.2014


Ответы (1)


Боюсь, это не поддерживается. Видеть

--ignore-dir не поддерживает абсолютные пути · Проблема № 291 · petdance/ack2

Я пришел к этому сообщению для чего-то подобного и нашел вышеуказанную проблему... :-(

person Peter V. Mørch    schedule 25.08.2016