如何使用ack搜索特定文件类型的文件.
例如
ack -f .scss blah
acl -f .rb blah
Run Code Online (Sandbox Code Playgroud)
显然以上不起作用,但我怎么能用ack做到这一点?
小智 11
使用--type为此.仅搜索python文件,例如:
ack --type=python searchthis
Run Code Online (Sandbox Code Playgroud)
列出所有支持的类型
ack --help=types
Run Code Online (Sandbox Code Playgroud)
如果要创建自定义类型,请在〜/ .ackrc中添加如下内容:
--type-add=custom:ext:rb
--type-set
Run Code Online (Sandbox Code Playgroud)
然后你可以使用--type = custom with ack来搜索扩展名为.rb的文件.
简短的回答:
ack blah --css
Run Code Online (Sandbox Code Playgroud)
长答案:
您可以将文件类型添加到您的搜索中,以教 Ack 只查看这些文件。例如,让我们将css和sass扩展与“样式表”短名称相关联:
ack --type-add=stylesheets:ext:css,sass
Run Code Online (Sandbox Code Playgroud)
既然您已经教 Ack 搜索要与“样式表”短名称相关联的文件类型,您可以要求 Ack 使用该短名称:
ack --type-add=stylesheets:ext:css,sass --type=stylesheets blah
Run Code Online (Sandbox Code Playgroud)
或者用简短的方法:
ack --type-add=stylesheets:ext:css,sass --stylesheets blah
Run Code Online (Sandbox Code Playgroud)
即使是简短的方式,搜索时也需要输入很多内容,这就是为什么这类命令更适合用于配置文件(如 )的原因~/.ackrc,但我更喜欢在~/.bashrc.
但是为什么它默认使用--type=css, 或--css?因为 Ack 有一个默认的文件名组,您可以使用ack --dump.
使用确认版本:2.24
find . -name '*.scss' | ack -x 'blah'
Run Code Online (Sandbox Code Playgroud)
-x Read the list of files to search from STDIN.