如何使用ack搜索特定文件类型的文件。
例如
ack -f .scss blah
acl -f .rb blah
显然上面的方法不起作用,但我怎么能用ack做到这一点?
答案 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