Search code examples
ack

Can I create an ack file type based on a filename, not extension?


I would like to include files with a specific name -- not an extension -- in my ack search. Is this possible with ack?

If I use the -G option, this would exclude all other file types. (So I can't put it in my .ackrc file.)

I tried to use --type-set mytype=filename.txt but this only works for extensions, so this would search for files including the pattern .filename.txt, thus not find filename.txt. (That's also what the ack --help types shows: --mytype .filename.txt, not --mytype filename.txt.)

Someone any ideas?


Solution

  • man ack says that the files to be searched in can be given through standard input.
    So this should work:

    find . -name filename.txt | ack PATTERN -

    Unfortunately, it doesn't. It gives ack: Ignoring 1 argument on the command-line while acting as a filter., which apparently is a bug in ack. When this bug will be fixed, we should be able to use

    find . -name filename.txt | ack --nofilter PATTERN -