使用ack搜索特定文件类型

时间:2014-08-08 09:32:37

标签: ack

如何使用ack搜索特定文件类型的文件。

例如

ack -f .scss blah
acl -f .rb blah

显然上面的方法不起作用,但我怎么能用ack做到这一点?

3 个答案:

答案 0 :(得分:9)

为此使用--type。仅搜索python文件,例如:

ack --type=python searchthis

使用

列出所有支持的类型
ack --help=types

如果要创建自定义类型,请将此类内容添加到〜/ .ackrc:

--type-add=custom:ext:rb
--type-set

然后你可以使用--type = custom with ack来搜索扩展名为.rb的文件。

答案 1 :(得分:4)

find . -name '*.scss' | ack -x 'blah'

-x读取要从STDIN搜索的文件列表。

答案 2 :(得分:2)

简短答案:

ack blah --css

长答案:

您可以在搜索中添加文件类型,以指导Ack仅查看那些文件。例如,让 css sass 扩展名与“ stylesheets” 短名称相关联:

ack --type-add=stylesheets:ext:css,sass

现在,您已经教过Ack您要搜索要与“ stylesheets” 短名称相关联的文件类型,您可以要求Ack在以下情况下使用该短名称:

ack --type-add=stylesheets:ext:css,sass --type=stylesheets blah

或者用简短的方式:

ack --type-add=stylesheets:ext:css,sass --stylesheets blah

即使是很简短的方法,在搜索中键入的内容也很多,这就是在诸如~/.ackrc这样的配置文件中更好地使用这类命令的原因,但是我更喜欢在我的别名中使用它们~/.bashrc

但是为什么默认情况下它可以与--type=css--css一起使用?由于Ack具有默认的文件名组,您可以使用ack --dump转储。

使用Ack版本:2.24