命令行文本搜索神器——RipGrep

简介

Ripgrep 是命令行下一个基于行的搜索工具,RipGrep 使用 Rust 开发,可以在多平台下运行,支持 Mac、Linux 和 Windows 等平台。RipGrep 与 The Silver SearcherAckGNU 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则不存在此问题。

pic

安装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、隐藏文件和二进制文件,在搜索时可放心使用此工具,对于编程或者特定的场景,可极大提高效率,推荐使用。

参考:
推荐一款命令行下最快的文本搜索神器 RipGrep

微信公众号
坚持原创技术分享,您的支持将鼓励我继续创作!
0%