10

我想在ack搜索中包含具有特定名称(而不是扩展名)的文件。这可以用ack吗?

如果我使用该-G选项,这将排除所有其他文件类型。(所以我不能把它放在我的.ackrc文件里。)

我尝试使用--type-set mytype=filename.txt,但这仅适用于扩展名,因此这将搜索包含 pattern 的文件.filename.txt,因此找不到 find filename.txt。(这也是ack --help types节目的内容:--mytype .filename.txt,不是--mytype filename.txt。)

有人有什么想法吗?

4

4 回答 4

11

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

find . -name filename.txt | ack PATTERN -

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

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

于 2011-07-05T08:30:03.293 回答
6

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

ack 'Pattern' **/filename.txt

于 2012-12-09T20:54:16.777 回答
3

您要问的是“我可以根据文件名制作 ack 识别的文件类型吗”,答案是“不,不在 ack 1.x 中,但您可以在 ack 2.0 中”。ack 2.0 是 alpha 版本,我们希望在圣诞节前有一个 beta 版本。

正如@Christian 上面指出的那样,您可以在命令行上指定给定的文件名,但这完全绕过了文件类型检查。

于 2012-12-09T21:21:30.373 回答
1

我知道这是一个迟到的回复,但是您可以在运行 ack 时简单地指定文件名吗?

ack 'My Text' filename.txt
于 2011-07-05T02:08:14.790 回答