文本递归搜索工具 ag 初体验

  |   0 评论   |   0 浏览

背景

ag (silversearcher-ag) 是一个类似于 ack 的文本内容搜索工具,但是比 ack 快一个数量级,命令比 ack 短 1/3。

原理

  • 多线程技术
  • mmap
  • Boyer-Moore strstr:经典单模式匹配算法:KMP、BM。KMP跟C库strstr()效率相当,而BM能快上3x-5x。

初体验

安装

debian下安装:

apt-get install silversearcher-ag

centos下安装:

yum install the_silver_searcher

mac下安装:

brew install the_silver_searcher

使用

fw@box:~/code/numbers$ ag fetch_all
src/stock/utils/stock_dbloader.py
6:    response = db.fetch_all(sql)

src/utils/db.py
61:def fetch_all(sql):
82:    return fetch_all(the_sql)
90:    a = fetch_all(sql)

参考