菜单

基本用法

相关源文件

此页面提供了ripgrep的快速入门指南,涵盖了基本命令语法、常用标志和实用示例。有关ripgrep架构或高级功能的深入信息,请参阅架构性能

命令结构

ripgrep命令的基本语法是

rg [OPTIONS] PATTERN [PATH...]

其中

  • PATTERN 是搜索模式(默认为正则表达式)
  • [PATH...] 是可选的搜索路径(默认为当前目录)
  • [OPTIONS] 是修改行为的命令行标志

基本命令流程图

来源: README.md3-9 GUIDE.md26-32

简单示例

在当前目录中搜索模式

rg fast

这将递归地搜索所有文件,遵循gitignore规则,并自动跳过隐藏文件/目录和二进制文件。

示例输出

README.md:75:  faster than both. (N.B. It is not, strictly speaking, a "drop-in" replacement
README.md:88:  color and full Unicode support. Unlike GNU grep, `ripgrep` stays fast while
README.md:119:### Is it really faster than everything else?
README.md:124:Summarizing, `ripgrep` is fast because:
README.md:129:  optimizations to make searching very fast.

在特定文件或目录中搜索

rg pattern path/to/file.txt
rg pattern src/

大小写敏感性

进行不区分大小写的搜索

rg -i fast

进行智能大小写搜索(除非模式包含大写字母,否则忽略大小写)

rg -S Fast

来源: GUIDE.md26-62 README.md51-61

搜索过程

来源: README.md116-135 GUIDE.md117-172

常用标志

常用标志

标志描述
-i, --ignore-case不区分大小写的搜索
-S, --smart-case智能大小写搜索(如果模式全为小写则忽略大小写)
-F, --fixed-strings将模式视为字面字符串而非正则表达式
-w, --word-regexp仅匹配整个单词
-c, --count仅显示匹配行的计数
-A NUM, --after-context=NUM在每个匹配项后显示 NUM 行
-B NUM, --before-context=NUM在每个匹配项前显示 NUM 行
-C NUM, --context=NUM在每个匹配项前后显示 NUM 行
-h, --help显示帮助信息(使用--help查看更多详情)
--hidden-.搜索隐藏的文件和目录
-L, --follow跟随符号链接
-g, --glob包含/排除匹配 glob 模式的文件
-t, --type仅搜索指定类型的文件
-T, --type-not不搜索指定类型的文件

来源: GUIDE.md989-1023 README.md132-149

自动过滤

默认情况下,ripgrep 会自动跳过

  1. 匹配以下模式的文件和目录
    • .gitignore 文件
    • .ignore 文件(优先级高于 .gitignore
    • .rgignore 文件(优先级高于 .ignore
  2. 隐藏的文件和目录
  3. 二进制文件
  4. 符号链接

禁用过滤

  • --no-ignore:不遵循 ignore 文件
  • --hidden-.:搜索隐藏的文件和目录
  • -a, --text:将二进制文件作为文本搜索
  • -L, --follow:跟随符号链接

标志-u, --unrestricted 是一个方便的快捷方式

  • -u:禁用 .gitignore 处理
  • -uu:也搜索隐藏文件
  • -uuu:也搜索二进制文件

来源: GUIDE.md174-219 README.md3-6

正则表达式

ripgrep 默认使用正则表达式。一些常用模式

模式匹配
fast包含“fast”的行
^fast以“fast”开头的行
fast$以“fast”结尾的行
[Ff]ast包含“Fast”或“fast”的行
\bfast\b包含单词“fast”的行
fast\w+“fast”后跟单词字符(例如,“faster”)
fast\s+\w+“fast”后跟空格和单词

进行字面字符串匹配(非正则表达式)

rg -F "string with * and +"

用于 PCRE2 功能,如查找和反向引用

rg -P '(\w+)\s+\1'  # Find repeated words

来源: GUIDE.md74-115 FAQ.md202-245

文件类型过滤

使用预定义类型

rg pattern -t rust    # Search only Rust files
rg pattern -T js      # Exclude JavaScript files

查看所有可用文件类型

rg --type-list

自定义文件类型

rg --type-add 'web:*.{html,css,js}' -t web pattern

Glob 模式

rg pattern -g '*.md'        # Only search markdown files
rg pattern -g '!*.min.js'   # Exclude minified JS files

来源: GUIDE.md258-422 README.md127-132

输出控制

行号和上下文

rg pattern -n             # Show line numbers (default)
rg pattern -N             # Don't show line numbers
rg pattern -C 2           # Show 2 lines of context around matches

计数和文件列表

rg pattern -c             # Count matching lines per file
rg pattern -l             # Only show filenames with matches
rg pattern -L             # Only show filenames without matches

文本替换

rg fast --replace FAST    # Replace matches in the output
rg 'fast\s+(\w+)' -r 'fast-$1'  # Use capture groups

输出排序

rg pattern --sort path    # Sort results by file path

来源: GUIDE.md440-539 FAQ.md153-171

特殊文件类型

压缩文件

使用-z/--search-zip搜索压缩文件

rg -z pattern archive.gz

支持的格式:gzip、bzip2、xz、lzma、lz4、brotli、zstd。

非 UTF-8 文本

对于其他编码的文件

rg -E encoding pattern file

UTF-16 文件会自动检测

rg pattern utf16file.txt

来源: GUIDE.md629-711 README.md144-149 FAQ.md173-193

配置文件

创建 ripgrep 配置文件以进行持久化设置

# ~/.ripgreprc
--smart-case
--follow
--hidden
--glob=!.git/*
--max-columns=150

设置环境变量以启用它

export RIPGREP_CONFIG_PATH=~/.ripgreprc

通过在命令行上指定标志来覆盖任何配置设置。

来源: GUIDE.md541-625 FAQ.md32-37

Shell 补全

生成 shell 补全脚本

# For bash
rg --generate complete-bash > ~/.bash_completion.d/rg.bash

# For zsh
rg --generate complete-zsh > ~/.zsh-complete/_rg

# For fish
rg --generate complete-fish > ~/.config/fish/completions/rg.fish

# For PowerShell
rg --generate complete-powershell > _rg.ps1

来源: FAQ.md91-151 README.md29-30