ripgrep (rg)
ripgrep 是用 Rust 编写的高速递归搜索工具,默认遵循 gitignore、跳过隐藏与二进制文件,支持 Unicode 与 PCRE2,性能显著优于 grep、ack、ag。
过去 7 天收获 1 颗 Star
爱鲜报评分
0.0
0 人评分
7k
星数
否
中文
Rust
主语言
是
活跃
484
贡献者
人工分析
EDITORIAL推荐理由
ripgrep 是命令行文本搜索的事实标准之一,速度极快且默认过滤规则贴合代码仓库场景,开箱即用。它跨 Windows/macOS/Linux 提供二进制发布,几乎无学习成本即可替代 grep。对日常开发、日志排查和 CI 脚本都非常值得纳入工具箱。
适用场景
- 代码仓库内按正则搜索关键字
- 日志与大数据文本快速过滤
- CI/脚本中替代 grep 做条件匹配
- 按文件类型(如 -tpy)定向检索
- 编辑器/IDE 与终端工具集成搜索后端
优点
- 搜索速度极快,基准测试中常领先同类工具数倍
- 默认尊重 .gitignore 并跳过隐藏/二进制文件,减少噪音
- 跨平台支持良好,各平台均有预编译二进制
- 支持 Unicode、上下文显示、多模式与颜色高亮
- 可通过 -P 启用 PCRE2,支持环视与反向引用
缺点
- 默认过滤规则可能让新手误以为"搜不到",需了解 -uuu
- 复杂无字面量优化的正则仍可能出现性能下降
- 默认正则引擎不支持环视/反向引用,需切换 PCRE2
- 作为命令行工具无可视化界面,需熟悉参数
上手难度
入门
ripgrep 是什么
ripgrep(命令名 rg)是一款用 Rust 编写的行导向搜索工具,会递归地在当前目录中按正则表达式查找内容。它默认遵循 .gitignore、.ignore、.rgignore 规则,并自动跳过隐藏文件与二进制文件,因此在代码仓库中搜索时噪音极少。
核心特性
- 默认递归 + 自动过滤:无需额外参数即可获得干净的搜索结果;如需关闭全部过滤,可使用
rg -uuu。 - 按文件类型检索:
rg -tpy foo只搜 Python 文件,rg -Tjs foo排除 JavaScript 文件,并支持自定义类型规则。 - Unicode 常开:在保持高速的同时完整支持 Unicode。
- PCRE2 可选:通过
-P/--pcre2或--auto-hybrid-regex启用环视、反向引用等高级正则能力。 - 跨平台:Windows、macOS、Linux 均有官方二进制发布。
快速上手
# 在当前目录递归搜索关键字
rg "TODO"
# 只搜 Python 文件,显示行号与上下文
rg -n -C 2 -tpy "def main"
# 使用 PCRE2 支持环视
rg -P "foo(?=bar)"
# 关闭所有自动过滤
rg -uuu "pattern"
性能表现
在 Linux 内核源码树等大型语料上的基准测试中,ripgrep 通常明显快于 git grep、The Silver Searcher(ag)、ack 与 GNU grep。需要注意的是,当正则缺乏字面量优化机会或匹配数量极大时,性能仍会下降,具体表现取决于模式与数据特征。
适用人群
开发者、运维与数据排查人员,以及任何希望在终端中高效检索文本的用户。对于习惯 grep 的用户,ripgrep 基本可以直接替换,并在代码搜索场景中获得更好的默认体验。
评论
- 暂无评论,来写第一条吧。