Получение подтверждения поиска в .htaccess или других точечных файлах - PullRequest
8 голосов
/ 24 января 2011

Есть ли способ получить подтверждение поиска в файле, имя файла которого начинается с . (например, .htaccess), не прибегая к опциям --all или --unrestricted?

I 'я пытался добавить следующее в мой ~/.ackrc файл безрезультатно:

--type-set=apache=.htaccess

Ответы [ 3 ]

4 голосов
/ 24 января 2011

Может показаться, что ack не распознает имя файла с полным расширением;то есть, когда вы указываете расширение «.htaccess», ack ищет только файлы с хотя бы одним символом до этого расширения.

Чтобы обойти это, вы можете использовать -u/--unrestricted в сочетании с -G regex флаг (для ограничения поиска файлами, имена которых соответствуют регулярному выражению).Например:

$ ack -u -G '\.htaccess' pattern
0 голосов
/ 01 февраля 2016

Обновлено @ ответ Шона для Ack 2

так как они убрали два флага, которые @Sean использовал

ack 2 примечания к выпуску говорят:

Опция -G была удалена. Два шаблона в командной строке было неоднозначный. В этой командной строке:

ack1 -G filepattern -i -w searchpattern

какой шаблон изменяет -i и -w? Теперь, с ack 2.0, вы можете использовать новый -x для передачи имен файлов из одного вызова ack в другой.

ack2 -g -i filepattern | ack2 -x -w searchpattern

и флаг -u (неограниченно) больше не нужен. Итак, что вы хотите:

ack -g "\.htaccess" | ack -x pattern

Или, в этом отношении, просто используйте find для генерации списка файлов (особенно полезно, чтобы найти файл в точечной папке):

find **/.hidden/complex-path/* | ack -x pattern
0 голосов
/ 24 января 2011

Вы не можете сделать это в ack 1.x. У ack 2.0 будут более гибкие способы указания файлов.

...