Asins Blog

简单其实不简单

This project is maintained by asins

ripgrep 命令行快速搜索工具

一、常用参数

二、常用举例

只搜索文件名

rg -g 'gulpfile.js' --files

# 搜索路径中包含特定内容的所有子文件
rg --files -g '**/css/**' 
# 搜索路径中包含特定内容的直属目录文件
rg --files -g '**/css/*'

搜索所有JS文件,但跳过node_modules中的内容

rg 'postcss' -g !'node_modules' -g '*.js'

只显示搜索到的文件名

rg -H -g 'gulpfile.js' --files

搜索并替换

# 查找姓、名,并做交换处理
rg '([A-Z][a-z]+)\s+([A-Z][a-z]+)' --replace '$2, $1'

支持正则的命名组

rg '(?P<first>[A-Z][a-z]+)\s+(?P<last>[A-Z][a-z]+)' --replace '$last, $first'

提供完整的Unicode字符集支持,通过匹配任何大写的Unicode字母,然后匹配任何小写Unicode字母序列:

rg '(\p{Lu}\p{Ll}+)\s+(\p{Lu}\p{Ll}+)' --replace '$2, $1'

Regex syntax

The syntax supported is documented as part of Rust’s regex library.

其它

Search only files matching a particular glob:

rg foo -g 'README.*'

Or exclude files matching a particular glob:

rg foo -g '!*.min.js'

只搜索HTML、CSS文件:

rg -thtml -tcss foobar

搜索除Javascript文件以外的所有内容:

rg -Tjs foobar

To see a list of types supported, run rg --type-list. To add a new type, use --type-add, which must be accompanied by a pattern for searching (rg won’t persist your type settings):

rg --type-add 'foo:*.{foo,foobar}' -tfoo bar

The type foo will now match any file ending with the .foo or .foobar extensions.