我基本上只想做ack foo * .citrus,并且在当前目录和下面的所有Citrus文件中找到字符串'foo'。麻烦的是,如果当前目录中没有任何Citrus文件,这将不起作用。Ack:搜索具有特定扩展名的文件的目录树
我试着搞了-G没有成功。我是否真的需要在.ackrc中添加文件类型,以便将搜索限制为具有给定扩展名的文件?
我基本上只想做ack foo * .citrus,并且在当前目录和下面的所有Citrus文件中找到字符串'foo'。麻烦的是,如果当前目录中没有任何Citrus文件,这将不起作用。Ack:搜索具有特定扩展名的文件的目录树
我试着搞了-G没有成功。我是否真的需要在.ackrc中添加文件类型,以便将搜索限制为具有给定扩展名的文件?
默认情况下,ack
仅在已知类型的文件(如* .java,* .cpp等)中进行搜索。它不知道有关文件* .citrus,所以在这样的文件中搜索您必须使用-a
CMD行开关:
$ack -a -G '\.citrus$' foo
1.d/1.citrus
1:foo_bar
您不必将其设置在.ackrc如果你不想要的。您也可以在您的环境中设置ACK_OPTIONS,或在命令行中指定--type-set参数。 ack不在乎。
正如安迪·莱斯特建议,你也可以创建一个排版不用其他不辞辛苦将其添加到您的.ackrc
:
ack --type-set=cit=.citrus --cit "foo"
或者你可以使用这个技巧:http://stackoverflow.com/questions/ 3870611 /如何让-ack-support-more-filetypes –
-a太过分了。 --type-set是要走的路。 –
这是合乎逻辑的,但不是最有用的。这样一个简单的任务 - “搜索带有这个扩展名的文件” - 要求你不仅要使用常规扩展名(-G)来告诉它的扩展名,而且你希望它实际上搜索这些文件(-a或--type-设置 - 即使这个选择是有争议的)。你必须爱Unix。 –