在ack中使用路径模式搜索非常慢

时间:2014-03-28 09:54:22

标签: ack

我尝试使用ack搜索foo,但仅限于当前目录和所有子目录中的所有Gemfile个文件。

快速搜索所有文件:ack foo

但这非常缓慢:ack -g Gemfile | ack -x foo

后一个命令需要25秒才能返回,这使得它基本上无法使用。

我做错了吗?如何仅在特定文件中搜索术语(我知道--ruby--php但有时您想指定自己的模式)

更新

在Github项目中报告此问题后,添加了一个修补程序,可以加快-g选项的大型代码库(https://github.com/petdance/ack2/issues/458)。 它应该包含在下一个版本中(> 2.12)。

1 个答案:

答案 0 :(得分:1)

如果你正在运行ack 2.x,你可以轻松地为Gemfile创建一个文件类型。

ack --type-add=gemfile:is:Gemfile --gemfile foo

如果你做了很多,你把--type-add=gemfile:is:Gemfile放在你的.ackrc然后你就可以说

ack --gemfile foo

作为ack作者/维护者,我很担心你的原始管道花了这么长时间,如果你有时间并且愿意将它作为一个问题提交,有人可能会看一看为什么会这样。 https://github.com/petdance/ack2/issues