【问题标题】:Using ack to search inside files with no extensions使用 ack 搜索没有扩展名的内部文件
【发布时间】:2013-07-19 16:48:49
【问题描述】:

我在文件FOOfoo.cc 中包含一些文本“栏”。

有没有办法告诉ack-grep 搜索没有扩展名的文件(即FOO)?

我尝试过这样的事情:

ack-grep --type-set=foo=FOO bar

返回 foo.cc 中的文本,但不返回文件 FOO。

我还将 --type-set 添加到我的 .ackrc 文件中,调用

ack-grep --help-types

表明 ack-grep 正在寻找 .FOO 文件。

【问题讨论】:

    标签: grep ack


    【解决方案1】:

    我的确认是 2.12 版本。波纹管命令应该可以工作。

    $ ack --type-set make:is:Makefile --type=make string-pattern
    

    同样,

    $ ack --type-set foo:is:FOO --type=foo string-pattern
    

    【讨论】:

      【解决方案2】:

      您可以将ack-grep-a(搜索所有内容)与-G(仅搜索与给定正则表达式匹配的文件)结合起来。比如:

      ack-grep -a -G '^[^.]+$' what-to-search-for
      

      应该可以解决问题。

      在 ack2 下你必须定义一个自定义类型:

      ack-grep --WANTED --type-set WANTED:match:^[^.]+$ what-to-search-for
      

      为我工作。

      【讨论】:

      • 这仅适用于 ack 1.x。 -a-G 标志已在 ack 2.0 中删除,因为它们不再需要。
      • @AndyLester 好点,谢谢。更新了 ack2。 (我认为 ack1 在这种情况下更明显,但是嘿。)
      【解决方案3】:

      你不能用 ack 1.x 做你想做的事。您需要升级到ack 2.0

      ack 1.x 没有办法处理没有扩展名的文件。 ack 2.0 增加了一个更加灵活的文件规范系统。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-10-23
        • 2018-09-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-16
        • 2016-12-24
        相关资源
        最近更新 更多