AX 爱鲜报

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 基本可以直接替换,并在代码搜索场景中获得更好的默认体验。

评论

登录后才可评论与评分

0 条评论

  • 暂无评论,来写第一条吧。