RipGrep介绍与使用

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:仅用于学习所用 参考了 https://www.liuvv.com/p/868944ef.html

  • 说到文本搜索工具,大家一定会知道 grep, 它是 linux 最有用并最常用的工具之一。但如果在一个大的工程项目中搜索某个关键词,它会有些耗时。
  • 出现了现在的新的替代者 Ripgrep 简称 rg

一、RG用法说明

  • 功能 与 GNU Grep的功能类似
    • RipGrep 是一个以行为单位的搜索工具, 它根据提供的(模式匹配) pattern 递归地在指定的目录里搜索。
    • 它是由 Rust 语言写成,相较与同类工具,它的特点就是无与伦比地快。
  • 使用手册
    • 自动递归搜索 (grep 需要-R)
    • 自动忽略.gitignore 中的文件以及二进制文件
    • 可以搜索指定文件类型(rg -t py foo限定 python 文件, rg -T js foo排除 js 文件)
    • 支持大部分 grep 的 feature(常用的都有)
    • 支持各种文件编码(UTF-8, UTF-16, latin-1, GBK, EUC-JP, Shift_JIS 等等)
    • 支持搜索常见压缩文件(gzip, xz, lzma, bzip2, lz4)
    • 自动高亮匹配的结果

1.1 扩展阅读

  • 还有更强的:比如现在的rga:ripgrep,能够搜索PDFs, E-books,Office documents, zip, tar.gz等等
  • 参考: https://github.com/phiresky/ripgrep-all

二、基础使用

  1. cat a.txt, 我们以下面的文件为测试文件, 可以发现rg 和 grep 的选项大部分一样
test
a
b
c
d
e
f
g
test1
TEST2
  1. 我们先来一个最基础的搜索:
rg 'test'  a.txt
1:test
9:test1
  1. -w有word之意,表示搜索的字符串作为一个独立的单词时才会被匹配到。
rg -w 'test'  a.txt
1:test
  1. 使用-i选项,即可在搜索时不区分大小写
rg -i 'test'  a.txt
1:test
9:test1
10:TEST2
  1. -l只打印有匹配的文件名
rg -l 'test'  a.txt
a.txt
  1. -C 输出匹配上下几行的内容
rg -C 2 'c'  a.txt

2-a
3-b
4:c
5-d
6-e
  • 支持的文件类型可以通过 rg --type-list 查看

三、高阶使用

  1. 使用 -e REGEX 来指定正则表达是
rg -e "*sql" -C2
  1. 默认 rg 会忽略 .gitignore 和隐藏文件,可以使用 -uu 来查询所有内容
rg -uu "word" .
  1. 可以使用 -t type 来指定文件类型:
rg -t markdown "mysql" .  # 在 md 文件中查找 “mysql” 关键字

三、搜索文件

  1. 列出当前文件夹会进行查询的所有文件, 该选项其实可相当于:find . -type f,查找当前目录所有文件
rg --files . 
alias rgf='rg --files | rg' # 可来个别名
  1. 搜索以 md 为后缀的文件
rg --files . | rg -e ".md$" # 正则匹配

四、vim中使用

  • 配合 fzf
Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } "极限搜索文件
Plug 'junegunn/fzf.vim'
nnoremap <leader>fo :Files<CR>"映射
nnoremap <leader>fif :Rg<CR> "映射

在这里插入图片描述


总结:

  • 对于Linux中常用命令rg的使用方法记录
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值