简介
Ripgrep 是命令行下一个基于行的搜索工具,RipGrep 使用 Rust 开发,可以在多平台下运行,支持 Mac、Linux 和 Windows 等平台。RipGrep 与 The Silver Searcher、Ack 和 GNU Grep 的功能类似。
项目地址:https://github.com/BurntSushi/ripgrep
为什么使用ripgrep
ripgrep性能测试
以搜索整个Linux内核源码(来自Github):
Tool | Command | Line count | Time |
---|---|---|---|
ripgrep (Unicode) | rg -n -w '[A-Z]+_SUSPEND' |
450 | 0.106s |
git grep | LC_ALL=C git grep -E -n -w '[A-Z]+_SUSPEND' |
450 | 0.553s |
The Silver Searcher | ag -w '[A-Z]+_SUSPEND' |
450 | 0.589s |
git grep (Unicode) | LC_ALL=en_US.UTF-8 git grep -E -n -w '[A-Z]+_SUSPEND' |
450 | 2.266s |
sift | sift --git -n -w '[A-Z]+_SUSPEND' |
450 | 3.505s |
ack | ack -w '[A-Z]+_SUSPEND' |
1878 | 6.823s |
The Platinum Searcher | pt -w -e '[A-Z]+_SUSPEND' |
450 | 14.208s |
由此可见ripgrep
性能非常优异,搜索速度之快可见一斑。
个人使用
之前非常推崇The Silver Searcher,但是由于新电脑对于Linux兼容性不是很好,一直使用Windows系统(虽然不喜欢),所以一直寻找可以在Windows上使用的命令行神器。但是The Silver Searcher
在windows不能搜索中文,而ripgrep
则不存在此问题。
安装ripgrep
官方教程:https://github.com/BurntSushi/ripgrep#installation
里面详细介绍了各个平台的安装方法。
对于Windows系统来说,更加推荐直接从releases下载对应的ripgrep
程序,解压并加入到环境变量中,使用命令行调用更加方便。开始时试着choco install ripgrep
命令安装,在下载程序时卡住,结果耗费了时间却还没有安装好。
使用教程
具体教程请点击官方文档
根据著名的“二八原则”,我们只需要了解一个软件的 20% 用法即可解决我们遇到的 80% 问题。因此介绍一些简单的用法,能解决问题即可,详细了解请查看文档。
- 在
README.md
中查找fast
:rg fast README.md
- 一个单词中包含
fast
,不包括fast
(正则表达式):rg 'fast\w+' README.md
- 一个单词中包含
fast
,包括fast
:rg 'fast\w*' README.md
- 递归搜索,当前目录搜索
fast
,包括所有子目录:rg fast
并且ripgrep
会自动过滤掉一些文件,例如.gitignore
、隐藏文件和二进制文件,在搜索时可放心使用此工具,对于编程或者特定的场景,可极大提高效率,推荐使用。