用法 ([]
内表示是可选参数):
rg [OPTIONS] PATTERN [PATH ...]
rg [OPTIONS] -e PATTERN ... [PATH ...]
rg [OPTIONS] -f PATTERNFILE ... [PATH ...]
rg [OPTIONS] --files [PATH ...]
rg [OPTIONS] --type-list
command | rg [OPTIONS] PATTERN
rg [OPTIONS] --help
rg [OPTIONS] --version
参数解释
PATTERN: 要搜索的正则表达式,以-
开始的正则需要添加 -e
/--regexp
flag,如rg -e -foo
PATH…: 需要检索的文件或目录
输入选项(input options)
-
--
:表示后续以-
开头的word
都不再是flag
而是pattern
-
-e PATTERN, --regexp=PATTERN
: 需要搜索的正则表达式,可多次指定 -
-f PATTERNFILE, --file=PATTERNFILE
:指定从何文件搜索正则表达式,可多次指定 -
--pre=COMMAND
允许指定一个文件格式转换命令,ripgrep会先将文件通过该命令转换,然后在转换后的内容搜索正则表达式。文件
→COMMAND处理
→获取标准输出
→ripgrep搜索输出内容
-
--pre-glob=GLOB
专为--pre
命令设计,精确的筛选需要预处理的文件,避免对不匹配的文件执行不必要的格式转换,大幅提升性能。rg --pre=pre-pdftotext --pre-glob='*.pdf' '关键词'
report.pdf
→ 调用pdftotext
转换后搜索notes.txt
→ 直接搜索文本(省去进程创建)
-
-z, --search-zip
搜索压缩包
search options
-s, --case-sensitive
执行搜索时区分大小写-i, --ignore-case
执行搜索时不区分大小写--crlf
启动时将CRLF(\r\n)视为行终止符,而不是\n--dfa-size-limit=NUM+SUFFIX?
正则表达式的dfa上限,可带单位--regex-size-limit=NUM+SUFFIX?
设置在内存中构建的整体正则表达式对象的最大尺寸--engine=ENGINE
指定正则表达式引擎-E ENCODING, --encoding=ENCODING
强制 ripgrep 使用特定编码处理所有被搜索文件(默认自动检测编码)-F, --fixedstrings
将所有模式视为字面量而不是正则表达式-v --invert-match
反转匹配,打印不匹配的行,--no-invert-match
为相反的输入-x --line-regexp
整行匹配-w, --word-regexp
独立单词匹配,启用此标志后,ripgrep 只显示被单词边界包围的匹配结果。类似于在正则表达式中自动给搜索词添加\b
边界,比-x
优先级高-m NUM, --max-count=NUM
限制每个文件的匹配行数量,到达指定数量就停止当前文件搜索--mmap
优先使用mmap
技术进行文件搜索-U, --multiline
多行模式,允许匹配内容跨越多个行,突破默认的单行匹配限制--multiline-dotall
当启用多行搜索时(-U
),强制正则表达式中的点号.
匹配包括换行符的所有字符--no-unicode
禁用unicode模式--null-data
将默认的行终止符从换行符\n
改为NUL字符(\0
或ASCII 0)-P, --pcre2
切换默认的正则引擎更换为PCRE2-S, --smart-case
启用智能大小写匹配模式--stop-no-nonmatch
找到至少一个匹配行且后续遇到不匹配行就提前停止读取文件-a, --text
强制将所有文件当作纯文本文件处理,禁用其默认的二进制文件检测机制-j NUM, --threads=NUM
控制搜索时使用的并行线程数
filter options
--binary
默认情况下ripgrep使用NUL
字节作为启发式标志。一旦在文件中检测到NUL字节,立即判断为二进制文件,然后立即停止搜索该文件并不显示匹配内容。启用后即使检测到NUL字节,也继续搜索文件,直到找到首个匹配项或搜索到文件结束停止搜索-L, --follow
开启“跟随符号链接”功能(默认关闭),用--no-follow
在本命令中取消-L
的效果-g GLOB, --glob=GLOB
通过通配符模式(glob)包含或排除特定文件和目录进行搜索--glob-case-insensitive
让所有通过-g/--glob
指定的通配符进行不区分大小写的匹配,--no-glob-case-insensitive
取消此效果--iglob=GLOB
允许用户通过不区分大小写的通配符模式来包含或排除文件/目录-., --hidden
搜索隐藏文件和目录,--no-hidden
取消此效果--ignore-file=PATH
通过外部文件指定忽略规则(gitignore
格式)--ignore-file-case-insensitive
控制忽略文件规则匹配时是否区分大小写-d NUM, --max-depth=NUM
指定搜索的目录遍历的深度层级--max-filesize=NUM+SUFFIX?
跳过超过指定大小的文件--no-ignore
跳过所有忽略文件,--ignore
取消这效果--no-ignore-dot
仅跳过.ignore
和.rgignore
文件中的过滤规则,通过--ignore-dot
可关闭此功能--no-ignore-exclude
禁用手动配置的排除规则,--ignore-exclude
取消此效果--no-ignore-files
禁用显式指定的忽略文件,--ignore-files
取消此效果--no-ignore-global
禁用来自“全局”源的忽略规则(.gitignore
文件),--ignore-global
取消此效果--no-ignore-parent
不应用从父目录中找到的忽略文件(如.gitignore
)中的规则,--ignore-parent
取消此效果--no-ignore-vcs
禁用版本控制系统的忽略规则,-ignore--vcs
取消此效果--no-require-git
默认只在git仓库才遵守版本控制的忽略文件(如.gitignore
),启用后即使不再git仓库,也会遵守版本控制的忽略文件。--require-git
取消此效果--no-file-system
遍历目录树搜索文件时,不会跨越任何文件系统边界,--no-one-file-system
取消此效果。在搜索每个给定的起始路径时,遇到挂载点(通往另一个文件系统的“门”)就停下来,不进去搜索。-t TYPE, --type=TYPE
用于限制只搜索特定类型的文件-T TYPE, --type-not=TYPE
用于排除指定类型的文件不进行搜索--type-add=TYPESPEC
用于创建自定义文件类型匹配规则--type-clear=TYPE
清楚type-add
创建的自定义文件类型匹配规则-u, --unrestricted
标志通过多次重复(最高3次)逐步降低 ripgrep 的智能过滤级别,使搜索范围越来越广
output options
-A NUM, --after-context=NUM
会显示每条匹配结果之后的 NUM 行内容-B, --before-context=NUM
会显示每条匹配结果之前的NUM行内容-C NUM, --context=NUM
在匹配结果前后显示NUM行内容block-buffered
使用内存缓冲区,只有当这个缓冲区积累到一定大小后,才会一次性将其内容**刷新 (flush) **到标准输出 (stdout)。--no-block-buffered
取消此功能-b, --byte-offset
在输出中添加数字前缀,表示行或匹配文本在文件中的起始字节位置(从0开始计数)--color=WHEN
此选项决定何时在输出中使用颜色高亮和ANSI转义序列--colors=COLOR_SPEC
选项用于自定义输出内容的颜色和样式,可通过多次指定实现多层样式叠加--column
在输出中增加列号信息,--no-column
取消这个功能--context-separator=SEPARATOR
在使用上下文选项(-A/-B/-C
)时,指定分隔不同上下文块的显示符号,--no-context-separator
取消此功能--field-match-separator=SEPARATOR
自定义 ripgrep 输出结果中各字段之间的分隔符号--heading
在每个文件匹配结果组的顶部显示一次文件路径,而不是在每行匹配前都重复显示,--no-heading
取消此功能-h, --help
-h
是精简帮助模式,--help
是完整帮助模式--hyperlink-format=FORMAT
创建可点击的超链接