跳到正文
发现
ripgrep:极速代码搜索命令行工具
命令行工具开发者工具

ripgrep:极速代码搜索命令行工具

面向开发者的命令行搜索工具,按正则递归搜索目录,默认尊重 gitignore 规则并跳过隐藏与二进制文件。

admin
发布于 2026-10-28
浏览
4
访问
0
下载
0
版本
v15.2.0
平台
Windows、macOS、Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

ripgrep(命令名为 rg)是一个面向行的搜索工具,可以用正则表达式递归搜索当前目录。默认情况下,它会遵循 gitignore 规则,自动跳过隐藏文件/目录和二进制文件。若想关闭所有自动过滤,可使用 rg -uuu。

ripgrep 在 Windows、macOS 和 Linux 上都有良好支持,每个版本都提供二进制下载。它与 The Silver Searcher、ack、grep 等搜索工具定位相似。

主要功能

  • 默认递归与自动过滤:不搜索被 .gitignore/.ignore/.rgignore 忽略的文件,不搜索隐藏文件,不搜索二进制文件;用 rg -uuu 可关闭自动过滤。
  • 按文件类型搜索:例如 rg -tpy foo 只搜 Python 文件,rg -Tjs foo 排除 JavaScript 文件;还可以用自定义匹配规则教它识别新的文件类型。
  • 兼容 grep 常用能力:显示搜索结果上下文、搜索多个模式、彩色高亮匹配、完整 Unicode 支持,并且在支持 Unicode 时依然保持快速。
  • 可选 PCRE2 引擎:用 -P/--pcre2 总是使用 PCRE2,或用 --auto-hybrid-regex 仅在需要时启用,从而支持默认引擎不支持的 look-around 和反向引用;也可通过 --engine (default|pcre2|auto) 指定引擎。
  • 替换支持:具备基础的替换能力,可根据匹配内容重写输出。
  • 多编码搜索:支持搜索非 UTF-8 的文本编码,如 UTF-16、latin-1、GBK、EUC-JP、Shift_JIS 等;UTF-16 可部分自动检测,其他编码需用 -E/--encoding 指定。
  • 压缩文件搜索:使用 -z/--search-zip 搜索 brotli、bzip2、gzip、lz4、lzma、xz、zstandard 等常见压缩格式的文件。
  • 输入预处理过滤器:支持任意输入预处理,例如 PDF 文本提取、其他解压方式、解密、自动编码检测等。
  • 配置文件:可以通过配置文件进行个性化设置。

安装与使用

README 中说明每个版本都提供二进制下载,未给出具体的包管理器安装命令,可前往 releases 页面获取对应平台的二进制文件:

https://github.com/BurntSushi/ripgrep/releases

基本用法示例:

# 在当前目录递归搜索正则模式
rg 'pattern'

# 显示行号并匹配完整单词
rg -n -w '[A-Z]+_SUSPEND'

# 只搜索 Python 文件
rg -tpy foo

# 排除 JavaScript 文件
rg -Tjs foo

# 关闭所有自动过滤
rg -uuu 'pattern'

# 使用 PCRE2 引擎
rg -P 'pattern'

# 搜索压缩文件
rg -z 'pattern'

# 指定编码
rg -E gbk 'pattern'

注意事项

  • 若需要可移植、随处可用且符合 POSIX 等标准的工具,README 建议使用传统的 grep。
  • ripgrep 并不遵循任何标准(如 POSIX),它更偏向代码搜索场景。
  • README 提醒:单个基准测试永远不足以说明问题,性能表现会随模式与数据不同而变化,某些场景下会出现性能陡降。
  • 项目采用 MIT 或 UNLICENSE 双许可。

本作品整理自 GitHub 开源项目 BurntSushi/ripgrep,原作者 @BurntSushi,许可证 Unlicense。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v15.2.0当前版本

    修复多处 gitignore 匹配问题,提升超大语料下的目录遍历性能;新增对 GIT_CONFIG_GLOBAL 与 GIT_CONFIG_SYSTEM 的支持,发布二进制加入 aarch64-unknown-linux-musl。

评论