3
ack "#define" 

вернется в подкаталоги и найдет файлы, которые содержат #define. Но я хотел ограничить поиск файлами * .h, поэтому я попытался

ack "#define" *.h

и это больше не повторяется. Единственные результаты приходят из файлов в рабочем каталоге.

Версия:

ack 1.96 работает под Perl 5.14.2 в /usr /bin /perl

1 ответ1

4

Подстановочный знак *.h расширяется вашей оболочкой, и ack принимает в качестве аргументов только отдельные файлы - ему некуда возвращаться.

Чтобы избежать этого, укажите подстановочный знак в одинарных или двойных кавычках, но ack, скорее всего, не распознает его как подстановочный знак: ack "#define" "*.h" .

Лучшим вариантом является использование --hh только для включения заголовочных файлов (см. --help type) или -G '\.h$' для включения только файлов, соответствующих указанному регулярному выражению Perl.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .