我基本上只想做 ack foo * .citrus 并让ack向下钻取并找到字符串' foo'在当前目录及以下的所有Citrus文件中。麻烦的是,如果当前目录中没有任何Citrus文件,这将无法正常工作。
我试图弄乱 -G 但没有成功。我真的需要在.ackrc中添加一个文件类型,只是为了限制搜索到具有给定扩展名的文件吗?
答案 0 :(得分:14)
正如Andy Lester建议的那样,你也可以创建一个排版而不会麻烦地将其添加到.ackrc
中:
ack --type-set=cit=.citrus --cit "foo"
答案 1 :(得分:12)
默认情况下,ack
仅搜索具有已知类型的文件(如* .java,* .cpp等)。它不知道文件* .citrus,所以要搜索这些文件,你必须使用-a
cmd行开关:
$ack -a -G '\.citrus$' foo
1.d/1.citrus
1:foo_bar
答案 2 :(得分:4)
如果你不想要,你不必在.ackrc中设置它。您还可以在您的环境中设置ACK_OPTIONS,或在命令行上指定--type-set arguments。 ack不在乎。