码迷,mamicode.com
首页 > 其他好文 > 详细

grep、ack、ag-搜索功能

时间:2015-11-15 13:32:05      阅读:624      评论:0      收藏:0      [点我收藏+]

标签:

今天在网上搜索关于grep的用法的时候,忽然看到其他更加高效的搜索方式。当然它们应该不存在所谓的谁更好。关键的是,在不同的场合使用不同的搜索命令,可以提高效率。其实,因为自己也没有使用过其他两种方法,目前还不能妄下结论。也就是参考网上的介绍,初步体验下罢了,等过一段时间,有了自己的心得体会再说吧。

这三个搜索命令,在终端下都是可以使用命令行进行安装的。其中,grep是随着ubuntu发布的,本身就有。其他两个,我们只需要在终端操作ack ag,系统就会给我们提示安装包跟安装命令,我们只需要按着提示操作就行了。至于使用方法,还是需要以后自己多多发掘的,可以借助help命令。

现在,我主要是想根据网上的介绍,研究一下这三个命令在庞大操作目录下的执行效率。验证的环境是在~ 目录下,执行的操作是寻找所有java字符串出现的地方。验证结果如下

1.ag

执行命令

time ag java

 

执行结果(部分)

下载/vim-backup/vim/zhangshuli.vim/plugin/taglist.vim
413:let s:tlist_def_html_settings = html;a:anchor;f:javascript function
415:" java language
416:let s:tlist_def_java_settings = java;p:package;c:class;i:interface; .
419:" javascript language
420:let s:tlist_def_javascript_settings = javascript;f:function

下载/vim-backup/vim/zhangshuli.vimrc
290:autocmd BufNewFile,BufRead *.java set formatprg=astyle
324:"for java & C/C++

 

执行时间

real    1m14.938s
user    0m2.410s
sys    0m2.757s

2.ack

执行命令

 time ack-grep java

 

执行结果(部分)

下载/vim-backup/vim/zhangshuli.vim/plugin/taglist.vim
413:let s:tlist_def_html_settings = html;a:anchor;f:javascript function
415:" java language
416:let s:tlist_def_java_settings = java;p:package;c:class;i:interface; .
419:" javascript language
420:let s:tlist_def_javascript_settings = javascript;f:function

下载/vim-backup/vim/zhangshuli.vimrc
290:autocmd BufNewFile,BufRead *.java set formatprg=astyle
324:"for java & C/C++

执行时间

real    1m6.235s
user    0m18.153s
sys    0m1.766s

3.grep

执行命令

time grep -rn java .

 

执行结果(部分)

./下载/vim-backup/vim/zhangshuli.vim/plugin/taglist.vim:415:" java language
./下载/vim-backup/vim/zhangshuli.vim/plugin/taglist.vim:416:let s:tlist_def_java_settings = java;p:package;c:class;i:interface; .
./下载/vim-backup/vim/zhangshuli.vim/plugin/taglist.vim:419:" javascript language
./下载/vim-backup/vim/zhangshuli.vim/plugin/taglist.vim:420:let s:tlist_def_javascript_settings = javascript;f:function
./下载/vim-backup/vim/zhangshuli.vimrc:290:autocmd BufNewFile,BufRead *.java set formatprg=astyle
./下载/vim-backup/vim/zhangshuli.vimrc:324:"for java & C/C++

执行时间

real    2m20.380s
user    0m6.482s
sys    0m3.779s

 

 

 

结论:

看起来ack跟ag执行效率差不多(网上别人做的实验,ag要比ack块好多,不知道为什么),而且,他们的结果显示更加清晰明了。

grep就比较慢了

以后等操作源码的时候,在对比这三个命令的优劣吧

 l另外,我们还可以把ag作为vim的插件,具体的方法跟普通插件没有什么区别,你只需要把ag.vim插件对应的文件当道vim对应文件目录下就行了。下载地址

https://github.com/rking/ag.vim

grep、ack、ag-搜索功能

标签:

原文地址:http://www.cnblogs.com/zhangshuli-1989/p/hq_15_11_15_12_10.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!