dazuiniu's blog

cat /dev/dazuiniu/random

ack一种grep的替代工具

View Comments

大嘴牛今天要介绍的是程序员不可或缺的工具,一种类似于grep,但有过之而无不及的工具ack

如果是在Fedora平台,那么只需要sudo yum install ack即可使用。使用的方法类似于grep,给定一个pattern,她就会自动在当前目录下去搜索,比如ack pattern。她相对于grep的好处在于:

  1. 速度很快,因为她只搜索你想要的东西。看看大嘴牛在某个代码下两者的差别(为了测试的公平性,需要把文件cache drop掉,否则搜索的文件都在cache,两者比较就没有意义了,特别是现在的机器动不动就是4G或者8G的情况下):grep: 1m8.699s   ack: 46.179s  速度上确实还是有所提高的。
  2. 默认就会递归往下找,而不用像grep一样加入-r选项,为大嘴牛省去了不少输入的麻烦,何乐而不为呢。
  3. 自动忽略版本控制软件所产生的信息以及二进制文件。大嘴牛收购了默认的grep搜出来一堆Binary的符号匹配,这玩意儿屁用没有。另外,.svn目录下面的东西也不会去查找。
  4. 可以设置想搜索的文件类别。这个大嘴牛看起来很方便,如果你需要用grep来实现,那可鸡巴麻烦了。
  5. 可以用ack -f来把某个类别的文件全部罗列出来,这个时候并不进行查找,有点像git ls-files。这个功能有时候用起来还是很方便的噢。
  6. 搜索结果默认就采用高亮,对用户很友好。

Written by dazuiniu

May 14th, 2010 at 11:02 am

Posted in all about dev

Tagged with ,

  • ripley

    用了下,感觉不错。肯定比裸grep强,不过估计自己做几个grep的别名
    最简单的像alias grepplus=”grep -ir –color” 也差不多吧。

  • dazuiniu

    多做几个grep的alias当然可以,但是用这个更加方便 :D

  • Newpublic01

    sudo apt-get install ack-grep

blog comments powered by Disqus