【发布时间】:2011-11-19 20:28:33
【问题描述】:
我基本上只是想做 ack foo *.citrus 并让 ack 向下钻取并在当前目录及以下目录的所有 Citrus 文件中找到字符串 'foo'。问题是如果当前目录中没有任何 Citrus 文件,这将不起作用。
我尝试弄乱 -G 没有成功。我真的需要在 .ackrc 中添加一个文件类型来限制搜索到具有给定扩展名的文件吗?
【问题讨论】:
标签: ack
我基本上只是想做 ack foo *.citrus 并让 ack 向下钻取并在当前目录及以下目录的所有 Citrus 文件中找到字符串 'foo'。问题是如果当前目录中没有任何 Citrus 文件,这将不起作用。
我尝试弄乱 -G 没有成功。我真的需要在 .ackrc 中添加一个文件类型来限制搜索到具有给定扩展名的文件吗?
【问题讨论】:
标签: ack
正如 Andy Lester 所建议的,您也可以创建一个排版,而无需麻烦地将其添加到您的 .ackrc 文件中:
ack --type-set=cit=.citrus --cit "foo"
【讨论】:
默认情况下,ack 仅搜索已知类型的文件(如 *.java、*.cpp 等)。它不知道文件 *.citrus,因此要在此类文件中搜索,您必须使用 -a cmd 行开关:
$ack -a -G '\.citrus$' foo
1.d/1.citrus
1:foo_bar
【讨论】:
如果你不想的话,你不必在 .ackrc 中设置它。您还可以在您的环境中设置 ACK_OPTIONS,或在命令行上指定 --type-set 参数。 ack 不在乎。
【讨论】: