搜索你想找的开源项目

输入名称、用途或关键词,也可粘贴 GitHub 仓库链接

分享到微信

当前解读页的微信分享二维码

用微信扫一扫打开,点击右上角「···」分享给朋友或朋友圈。

手机上可截屏后,在微信扫一扫中从相册识别二维码。

BurntSushi/ripgrep

开发工具

面向代码库的快速递归正则搜索命令行工具,默认遵循 gitignore 并跳过隐藏和二进制文件。

69,873
4,190
Rust
Unlicense
创建于 10 年前

项目介绍

ripgrep(命令名 rg)是一个按行搜索的工具,能在当前目录中递归查找正则表达式。它面向需要搜索源码树的开发者,与普通 grep 的主要差别在默认行为:遵循 .gitignore、.ignore 和 .rgignore 规则,跳过隐藏文件与目录,跳过二进制文件。使用 rg -uuu 可以关闭全部自动过滤。Windows、macOS 和 Linux 都是一等支持平台。

除基本匹配外,ripgrep 支持按文件类型过滤(rg -tpy foo 只搜 Python 文件)、显示匹配上下文、彩色高亮、完整 Unicode,并可通过 -P/--pcre2 或 --auto-hybrid-regex 选用 PCRE2 以支持环视和反向引用。它还能用 -z 搜索压缩文件、用 -E 指定非 UTF-8 编码、做替换改写输出、接入预处理器,并通过配置文件保存常用参数。

速度主要来自 Rust 正则引擎(有限自动机、SIMD 和字面量优化)、内存映射与增量缓冲的自动选择、用 RegexSet 匹配忽略规则,以及基于 crossbeam 和 ignore 的并行目录遍历。

快速使用

按平台选择包管理器安装,二进制名为 rg。macOS 或 Linuxbrew 用户可执行:

$ brew install ripgrep

Debian/Ubuntu 用户,或用 Rust/Cargo 安装(要求 Rust 1.96.0 及以上):

$ sudo apt-get install ripgrep
$ cargo install ripgrep

Windows、macOS 和 Linux 的预编译包见发布页。Windows 也可以用 choco install ripgrep、scoop install ripgrep 或 winget install BurntSushi.ripgrep.MSVC。

安装后直接在代码目录中搜索,结果会带文件路径和行号:

$ rg -n -w '[A-Z]+_SUSPEND'

如果要连被忽略的、隐藏的和二进制的文件一起搜索,使用 rg -uuu。

使用约束

  • 从源码构建要求 Rust 1.96.0(stable)及以上。
  • PCRE2 是可选能力,默认未启用;需要时用 --features 'pcre2' 构建,或在支持该能力的安装上使用 -P。
  • ripgrep 不遵循 POSIX,不是任意系统上 grep 的直接替代品;如果你需要到处都有、行为符合标准的工具,GNU grep 仍是更稳妥的默认选择。
  • 维护者明确不推荐 Ubuntu 上的 Snap 包,原因是反复出现的异常问题。
  • 采用 MIT 或 Unlicense 双许可。

HotRepo 点评

项目在 2026-11-07 的 Rust 日榜快照中位列第 9,当天新增 136 Star;Hacker News 上的发布讨论也持续有量:Ripgrep 13.0 在 2021 年获得 547 分、150 条评论,Ripgrep 15.0 在 2025 年获得 476 分、113 条评论。2026-08-01 关于 musl 二进制在超大搜索中偶发段错误的讨论获得 283 分、195 条评论,评论中有人把原因指向内核侧补丁,也有人指出 ripgrep 在 64 位 musl 构建下已改用 jemalloc 作为分配器。这些记录显示,这是一个被广泛使用、发布说明和边界问题都会受到认真审视的工具,而不是靠短期热度上榜的新项目。

本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。

Hacker News 讨论

Ripgrep 13.0
▲ 547 · 150 条评论 · 2021年6月13日
Ripgrep 15.0
▲ 476 · 113 条评论 · 2025年10月18日
Ripgrep 11 Released
▲ 410 · 88 条评论 · 2019年4月15日