【问题标题】:Ack: Search directory tree for files with a particular extensionAck:在目录树中搜索具有特定扩展名的文件
【发布时间】:2011-11-19 20:28:33
【问题描述】:

我基本上只是想做 ack foo *.citrus 并让 ack 向下钻取并在当前目录及以下目录的所有 Citrus 文件中找到字符串 'foo'。问题是如果当前目录中没有任何 Citrus 文件,这将不起作用。

我尝试弄乱 -G 没有成功。我真的需要在 .ackrc 中添加一个文件类型来限制搜索到具有给定扩展名的文件吗?

【问题讨论】:

    标签: ack


    【解决方案1】:

    正如 Andy Lester 所建议的,您也可以创建一个排版,而无需麻烦地将其添加到您的 .ackrc 文件中:

    ack --type-set=cit=.citrus --cit "foo"
    

    【讨论】:

      【解决方案2】:

      默认情况下,ack 仅搜索已知类型的文件(如 *.java、*.cpp 等)。它不知道文件 *.citrus,因此要在此类文件中搜索,您必须使用 -a cmd 行开关:

      $ack -a -G '\.citrus$' foo
      1.d/1.citrus
      1:foo_bar
      

      【讨论】:

      • 或者你可以使用这个提示:stackoverflow.com/questions/3870611/…
      • -a 太过分了。 --type-set 是要走的路。
      • 这是合乎逻辑的,但不是最有用的。这样一个简单的任务 - “搜索具有此扩展名的文件” - 要求您不仅告诉它使用常规扩展名 (-G) 的扩展名,而且您确实希望它实际搜索这些文件(-a 或 --type-设置 - 即使这个选择是有争议的)。你一定会喜欢 Unix。
      【解决方案3】:

      如果你不想的话,你不必在 .ackrc 中设置它。您还可以在您的环境中设置 ACK_OPTIONS,或在命令行上指定 --type-set 参数。 ack 不在乎。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-12-21
        • 2012-12-16
        • 2012-04-02
        • 2021-05-29
        • 1970-01-01
        • 1970-01-01
        • 2021-06-08
        相关资源
        最近更新 更多