我可以根据文件名而不是扩展名创建一个ack文件类型吗?

Mar*_*vin 10 ack

我想在我的ack搜索中包含具有特定名称的文件 - 而不是扩展名.这可能与ack有关吗?

如果我使用该-G选项,则会排除所有其他文件类型.(所以我不能把它放在我的.ackrc档案中.)

我尝试使用,--type-set mytype=filename.txt但这只适用于扩展,所以这将搜索包括模式的文件.filename.txt,因此找不到filename.txt.(那也是ack --help types节目:--mytype .filename.txt不是--mytype filename.txt.)

有人有什么想法吗?

Mar*_*vin 11

man ack说要搜索的文件可以通过标准输入给出.
所以这应该工作:

find . -name filename.txt | ack PATTERN -

不幸的是,事实并非如此.它给出了ack: Ignoring 1 argument on the command-line while acting as a filter.,这显然是ack中的一个bug.当这个bug 被修复时,我们应该能够使用

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

  • 与此同时,只需使用xargs:`find.-name filename.txt | xargs ack PATTERN -` (7认同)

ilt*_*mpo 6

你也可以这样做,如果你正在使用zsh:

ack 'Pattern' **/filename.txt