使用ack搜索特定文件类型

dag*_*da1 7 ack

如何使用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的文件.


Is *_* Ma 8

简短的回答:

ack blah --css
Run Code Online (Sandbox Code Playgroud)

长答案:

您可以将文件类型添加到您的搜索中,以教 Ack 只查看这些文件。例如,让我们将csssass扩展与“样式表”短名称相关联:

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


Joe*_*Joe 6

find . -name '*.scss' | ack -x 'blah'
Run Code Online (Sandbox Code Playgroud)

-x Read the list of files to search from STDIN.