我想在我的ack
搜索中包含具有特定名称的文件 - 而不是扩展名。这有可能用ack吗?
如果我使用-G
选项,则会排除所有其他文件类型。 (所以我不能把它放在我的.ackrc
文件中。)
我尝试使用--type-set mytype=filename.txt
但这仅适用于扩展程序,因此会搜索包含模式.filename.txt
的文件,因此找不到filename.txt
。 (这也是ack --help types
显示的内容:--mytype .filename.txt
,而不是--mytype filename.txt
。)
有人有什么想法吗?
答案 0 :(得分:11)
man ack
表示要搜索的文件可以通过标准输入给出
所以这应该有效:
find . -name filename.txt | ack PATTERN -
不幸的是,事实并非如此。它提供ack: Ignoring 1 argument on the command-line while acting as a filter.
,显然是bug in ack。当这个错误will be fixed时,我们应该可以使用
find . -name filename.txt | ack --nofilter PATTERN -
答案 1 :(得分:6)
如果您使用zsh
:
ack 'Pattern' **/filename.txt
答案 2 :(得分:3)
你问的是“我可以制作一个ack根据文件名识别的文件类型”,答案是“不,不是在ack 1.x,但你可以在ack 2.0”。 ack 2.0处于alpha版本,我们希望在圣诞节前获得测试版。
正如@Christian在上面指出的那样,您可以在命令行中指定给定的文件名,但是完全绕过文件类型检查。
答案 3 :(得分:1)
我知道这是一个迟到的回复,但你可以在运行ack时简单地指定文件名吗?
ack 'My Text' filename.txt