我该如何使用ack来搜索特定文件类型的文件。
例如:
ack -f .scss blah
acl -f .rb blah
显然,上面的方法行不通。但是我该如何用ack来实现呢?
我该如何使用ack来搜索特定文件类型的文件。
例如:
ack -f .scss blah
acl -f .rb blah
显然,上面的方法行不通。但是我该如何用ack来实现呢?
使用 --type 参数即可实现。例如,仅搜索 Python 文件:
ack --type=python searchthis
列出所有支持的类型。ack --help=types # ack 2.x
ack --help-types # ack 3.x.x
如果您想创建自定义类型,请将类似以下内容添加到~/.ackrc
文件中:
--type-add=custom:ext:rb
--type-set
您可以使用ack命令的--type=custom选项,仅搜索扩展名为.rb的文件。
find . -name '*.scss' | ack -x 'blah'
-x 从标准输入中读取要搜索的文件列表。
简短回答:
ack blah --css
长篇回答:
你可以在搜索时添加文件类型,让Ack只在这些文件中查找。例如,我们将css和sass扩展名与"stylesheets"短名称关联起来:
ack --type-add=stylesheets:ext:css,sass
现在你已经告诉Ack,你想要搜索与"样式表"短名称相关联的文件类型,你可以使用以下命令让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
命令进行转储。