ripgrep

ripgrep

递归正则搜索工具,默认遵守 .gitignore,grep 的高速替代

核心功能

在当前目录递归搜索正则表达式,默认跳过 .gitignore 命中项、隐藏文件与二进制文件。适合需要在大型代码库中频繁做全仓库文本检索的开发者与运维人员。

功能亮点

智能默认过滤

默认跳过 .gitignore 命中项、隐藏文件和二进制文件,需要全搜时加 -uuu

文件类型筛选

用 -tpy 只搜 Python 文件,用 -Tjs 排除 JavaScript,大幅减少无关结果

可选 PCRE2 引擎

加 -P 切换到 PCRE2,即可使用环视、反向引用等高级正则语法

压缩包与编码支持

-z 直接搜索 gzip、xz、zstd 等压缩文件,-E 指定 GBK、UTF-16 等编码

适用场景

• 在大型代码库中快速定位函数、变量或配置项的出现位置
• 排查日志与配置文件中的关键字,可按行号和上下文查看
• 在脚本或编辑器插件中做批量处理前的候选文件筛选

安装配置

bash
Homebrew (macOS / Linux):
brew install ripgrep

Debian / Ubuntu:
sudo apt-get install ripgrep

Arch Linux:
sudo pacman -S ripgrep

Fedora:
sudo dnf install ripgrep

Windows (winget):
winget install BurntSushi.ripgrep.MSVC

Windows (Scoop / Chocolatey):
scoop install ripgrep
choco install ripgrep

Cargo(需 Rust 1.96.0 以上):
cargo install ripgrep

使用方法

bash
rg pattern                   # 在当前目录递归搜索
rg -n -w '[A-Z]+_SUSPEND'    # 全词匹配并显示行号
rg -tpy foo                  # 只搜索 Python 文件
rg -Tjs foo                  # 排除 JavaScript 文件
rg -uuu foo                  # 关闭所有默认过滤(含隐藏文件与二进制文件)
rg -P pattern                # 强制使用 PCRE2 引擎
rg -E GBK pattern            # 按 GBK 编码搜索
rg -z pattern                # 搜索压缩文件

关键指标

尚未核验对标产品,此处只列本工具自身指标,不做对比结论。

指标ripgrep
价格免费
开源
上手难度入门

相关工具

同类工具

优点

  • 默认递归搜索且遵守 .gitignore,无需手动排除 node_modules、target 等目录
  • 基于 Rust 正则引擎(有限自动机 + SIMD + 字面量优化)与并行目录遍历,大仓库搜索很快
  • Windows、macOS、Linux 每个 release 都提供预编译二进制,下载即用
  • 默认开启完整 Unicode 支持,且开启后仍保持高速

缺点

  • 只负责搜索,仅支持输出层面的基础替换,不能直接改写文件内容
  • 默认忽略隐藏文件与 gitignore 命中项,初次使用容易误以为漏搜,需记住 -uuu
  • 某些正则写法(如无字面量可优化的模式)会明显变慢