用途:ripgrep(rg)是面向行的递归文本搜索工具,用于在代码库、目录、书籍或大型文档中查找正则模式,也用于找出包含或不含特定模式的文件,并提取匹配行。
主要能力:默认遵循 .gitignore,避免读取整个文件;支持大小写控制(-i、-S)、整词匹配(-w)、固定字符串(-F)、上下文行(-A/-B/-C)、行号(-n)、仅文件名(-l)、无匹配文件(--files-without-match)、计数(-c、--count-matches)、仅匹配部分(-o)、反向匹配(-v)、多行搜索(-U)、JSON 输出(--json)与 vimgrep 格式。可按文件类型(-t、-T、--type-list)或 glob(-g、--iglob)过滤,限制深度(--max-depth)、大小(--max-filesize),搜索隐藏文件(--hidden)、符号链接(-L)或忽略规则(--no-ignore、-u/-uu/-uuu)。可搜索压缩文件(-z)和二进制文件(--binary、-a)。
使用方式:基本命令为 rg "pattern" [path];例如 rg -t py "def main"、rg -g "*.tsx" "useState"、rg -C 3 "keyword"。replace 预览用 -r,但不修改文件。退出码:0 有匹配、1 无匹配、2 出错,可用于脚本判断。
适用场景:跨代码库查找函数、变量、import、TODO/FIXME、类定义;在书籍与文档中查找章节标题、引文或段落;处理超出上下文读取能力的大文件时,用 rg -m N 限制匹配数或配合 head 分页。
限制:需要完整文件内容时用 Read 工具;仅按文件名做简单 glob 匹配时用 Glob 工具;结构化数据提取适合 jq、awk;真正修改文件用 sed。资料未提供该工具的安装方式、收费信息与具体平台支持。默认不支持 lookahead/lookbehind,需 -P 使用 PCRE2。