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

Как вы исключаете конкретный файл из ack (ack-grep)?

С обычной командой grep существует опция --exclude (здесь подробно описано здесь: Использовать синтаксис grep --exclude/- include для не grep через определенные файлы), который позволяет игнорировать определенные файлы, когда вы выполняете grepping.

Ack --type опция позаботится о 95% случаев, когда вы хотите исключить файлы, но это не так (насколько я могу судить) обрабатывать случай исключения конкретного файла. У меня есть скомпилированный JS файл, в котором есть содержимое каждого другого JS файла (в одной строке), поэтому каждый раз, когда я grep для чего-либо, я возвращаю все содержимое этого гигантского скомпилированного файла.

Мне бы очень хотелось отказаться от ack и вернуться к grep по этому поводу, но это действительно раздражает. Пожалуйста, скажите мне, как можно удалить определенные файлы из поиска ack.

4b9b3361

Ответ 1

Нет, ack 1.x не позволит вам исключить один файл. В ack 2.0 вы можете. ack 2.0 в настоящее время находится в первой альфа, теперь является текущей рекомендуемой версией ack.

Что касается вашего конкретного случая с миниатюрным файлом Javascript, какую версию ack вы используете? ack 1.96 следует игнорировать модифицированный JavaScript на основе расширения. Если проверка расширения не работает, вы, вероятно, могли бы взломать сам файл, так как это одна программа Perl. Вы можете взломать функцию is_searchable.

В ack 2.0 мы смотрим на игнорирование любой строки поверх, скажем, 500 символов, потому что это явно не исходный код.

Вы также можете присоединиться к нам в списке рассылки ack-users. Мы очень отзывчивы.

Ответ 2

Чтобы игнорировать один файл с помощью ack 2.0, укажите спецификацию фильтра для значка -ignore файла:

--ignore-file=is:cljout.js

Ответ 3

Если вы запустите ack --create-ackrc, он выведет целую кучу пресетов для обычных файлов, таких как миниатюрные javascript, css и каталоги, такие как node_modules и .git. Очень полезно!

Здесь опция minified js:

# minified Javascript
--ignore-file=match:/[.-]min[.]js$/
--ignore-file=match:/[.]js[.]min$

Если вы хотите сохранить это на .ackrc run

ack --create-ackrc >> ~/.ackrc

а затем удалите из этого файла то, что вам не нужно.

Ответ 4

Также полезно знать с помощью ack2.0, вы можете указать эти параметры в файле .ackrc, если вам приходится часто фильтровать файлы.