Grep 使用ack在没有扩展名的文件中搜索
我在文件Grep 使用ack在没有扩展名的文件中搜索,grep,ack,Grep,Ack,我在文件FOO和FOO.cc中包含了一些文本“bar” 有没有办法告诉ack grep在没有扩展名的文件中搜索(即FOO) 我试过这样的方法: ack-grep --type-set=foo=FOO bar 它返回foo.cc中的文本,但不返回文件foo 我还将--type集添加到.ackrc文件中,调用 ack-grep --help-types 显示ack grep正在查找.FOO文件。您可以将ack grep的-a(搜索所有内容)与-G(仅搜索与给定正则表达式匹配的文件)。比如: ac
FOO
和FOO.cc
中包含了一些文本“bar”
有没有办法告诉ack grep
在没有扩展名的文件中搜索(即FOO
)
我试过这样的方法:
ack-grep --type-set=foo=FOO bar
它返回foo.cc中的文本,但不返回文件foo
我还将--type集添加到.ackrc文件中,调用
ack-grep --help-types
显示ack grep正在查找
.FOO
文件。您可以将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做你想做的事。您需要升级到
ack 1.x无法处理没有扩展名的文件。ack 2.0增加了更灵活的文件规范系统。我的ack是2.12版。下面的命令应该有效
$ ack --type-set make:is:Makefile --type=make string-pattern
同样地
$ ack --type-set foo:is:FOO --type=foo string-pattern
这只适用于ack 1.x。ack 2.0中的
-a
和-G
标志已被删除,因为它们不再是必需的。@AndyLester说得好,谢谢。更新为ack2。(我认为ack1在这种情况下更为明显,但嘿。)