文本递归搜索工具 ag 初体验
背景
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)