Ответы:
Используйте правильный инструмент для правильной работы. Если вы хотите найти имя файла, используйте 'find':
$ # search for all *.txt file in current directory
$ find . -iname "*.txt"
find . | ack whatev.ext
ack -g REGEX
Распечатать файлы, где относительный путь + имя файла совпадает с REGEX
[^/]*$
в свой REGEX для поиска только по имени файла
Я согласен, что имеет смысл использовать find, если вы просто ищете * .txt файлы. Тем не менее, ack имеет мощные функции обнаружения типов файлов, так что вы можете использовать
ack -f --perl
который найдет все файлы Perl, основываясь как на имени файла (* .pm, * .pl, * .t и * .pod), так и на строке shebang.