什么是 ACK?
- http://betterthangrep.com
- ack is a tool like grep, optimized for programmers
- is written purely in Perl 5,takes advantage of the power of Perl’s regular expressions.
- 作者在厌烦了不停的写下面的这个查找命令之后,开发了 ack 这个工具
grep foo $(find . -name '*.pm' | grep -v .svn)
可以看的出来,ack 诞生的目的就是要取代 grep,从作者开发的初衷以及它官网的名字,另外它还有一个 “ 可以替代 99%grep 的工作 ” 这个口号。
Debian/Ubuntu 上改名叫 ack-grep 了,用 apt-get install ack-grep 就可以装上了 ( 命令名也是叫 ack-grep 而不是 ack)。
ack 是用 perl5 写的,并没有什么第三方依赖,所以在其它系统上安装也很简单,只要从 CPAN 安装 App::Ack 模块就可以了。另外该网站还提供了一个单文件版本 (standalone version),只要下载后放到 bin 目录就行了(前提是安装了 perl5)。
使用
-a, --all: 搜索所有文件 |
文本搜索
简单的文本搜索,默认是递归的。
ack hello |
文件搜索
对搜索结果进行处理,比如只显示一个文件的一个匹配项,或者 xxx
ack --line=1 # 输出所有文件第二行 |
输出展示
ack hello --pager='less -R' # 以less形式展示 |
文件包含
ack --python hello #查找所有python文件 |
参考: