ack 是一个代码搜索工具,作者 厌烦了 grep 复杂的语法,所以创造了 ack 来解决痛点。ack 使用 Perl 语言开发,使用友好,速度快。ack 在大量代码文件中的搜索效率极高。

安装

sudo apt-get install ack-grep

使用

文本搜索

默认情况下 ack-grep 会搜索当前目录下所有文件内容,只要包含关键字就会输出。

ack-grep keyword
ack-grep -l keyword     # 只显示文件名
ack-grep -i keyword     # 忽略大小写
ack-grep -w keyword     # 强制要求 PATTERN 匹配整个单词

查找文件

可以代替 find 加 grep,其实 ack 的 -f 选项表示的是打印所有将要被搜索的文件,事实上不会执行搜索,如果后面加 PATTERN ,那么就在路径中搜索文件名。-g 选项表示的是搜索当前路径下的符合 PATTERN 的文件。

ack-grep -f filename
ack-grep -g file*

过滤文件

可以使用 --python 选项来指定在 python 文件中搜索

ack-grep --python keyword

reference