当前位置: 首页 > article >正文

Linux 下使用更强的ripgrep来搜索

简介

ripgrep(通常缩写为 rg )是一个快速高效的命令行搜索工具,它可以递归地在当前目录中搜索正则表达式模式。它类似于 grep ,但设计得更快,特别是对于大型代码库。它可以使用优化的算法和多线程,以闪电般的速度搜索文件、目录甚至压缩文件。它支持高级搜索功能,如正则表达式、文件类型过滤等。

安装

  • Debian/Ubuntu
sudo apt update
sudo apt install ripgrep
  • CentOS/RHEL
sudo yum install ripgrep
  • Fedora
sudo dnf install ripgrep
  • macOS
brew install ripgrep

基础语法

rg [options] PATTERN [PATH]
  • PATTERN:要搜索的正则表达式或字符

  • PATH:要搜索的目录(或文件)。如果未指定,则默认为当前目录

示例用法

基本用法

递归搜索当前目录及其子目录中的所有文件中的单词 “error”

rg "error"
在特定目录中搜​​索
rg "error" /var/log
不区分大小写搜索

默认情况下,ripgrep 区分大小写。使用 -i 使搜索不区分大小写

rg -i "error"
显示行号
rg -n "error"
仅列出包含匹配项的文件的名称

不显示实际匹配项

rg -l "error"
显示匹配数

显示每个文件的匹配数

rg -c "error"
在特定类型的文件中搜索

要在特定类型的文件中搜索(例如,仅 .txt 文件)

rg -t txt "error"
指定文件类型且合并其他选项
rg -t txt -i "error"
列出可用的文件类型
rg --type-list
仅搜索整个单词

要搜索整个单词的模式(而不是单词的一部分)

rg -w "error"
排除文件或目录(–glob 或 -g)

这会将 .git 目录下的文件排除在搜索之外

rg -g "!.git/*" "error"
使用多种模式搜索 (-e)

可以通过为每个模式提供 -e 选项来搜索多个模式

rg -e "error" -e "warning"
搜索压缩文件

默认情况下,ripgrep 会跳过压缩文件,但可以使用 -z 标志让它搜索压缩文件(例如 .gz、.tar.gz)

rg -z "error"
限制搜索深度(–max-depth)

这会将搜索限制在前两级子目录中

rg --max-depth 2 "error"
搜索二进制文件(-a 或 --binary)

默认情况下,ripgrep 会跳过二进制文件

rg -a "error"
显示所有匹配的行(不仅仅是第一行)

默认情况下,ripgrep 仅显示每个文件中的第一个匹配项

rg -H "error"
搜索单词边界

要搜索单词边界(例如,error 但不是errors)

rg "\berror\b"
搜索多个单词

可以使用 | 作为 OR 条件来搜索多个模式

rg "error|warning"
搜索行首
rg "^error"
搜索行尾
rg "error$"
在所有 .js 文件中搜索
rg -t js "console"

http://www.kler.cn/a/539875.html

相关文章:

  • shell脚本控制——使用新的shell启动脚本
  • 苍穹外卖-新增菜品(阿里云OSS文件上传mybatis主键返回批量保存口味表数据)
  • Faveo Helpdesk存在目录遍历漏洞(CVE-2024-37700)
  • Spring Cloud 04 - 负载均衡和外部服务访问
  • BiGRU双向门控循环单元多变量多步预测,光伏功率预测(Matlab完整源码和数据)
  • HTML应用指南:利用POST请求获取接入比亚迪业态的充电桩位置信息
  • 性能测试中的DB优化
  • 深入学习设计模式
  • 手机向电脑传输文件方法有哪些?
  • Baklib优化数字化内容管理用科技提升商业效率与增值潜力
  • 8.flask+websocket
  • [EAI-033] SFT 记忆,RL 泛化,LLM和VLM的消融研究
  • (原创,可用)SSH实现内外网安全穿透(安全不怕防火墙)
  • 网安加·百家讲坛 | 刘志诚:以业务为中心的网络安全挑战与机遇
  • b s架构 网络安全 网络安全架构分析
  • 【嵌入式 Linux 音视频+ AI 实战项目】瑞芯微 Rockchip 系列 RK3588-基于深度学习的人脸门禁+ IPC 智能安防监控系统
  • CSS Overflow 属性详解:控制内容溢出的利器
  • Docker、Podman 和 Containerd 三者区别
  • Windows 下搭建 googletest 测试框架(C/C++)
  • css:怎么设置图片不变形
  • jupyterLab插件开发
  • iOS AES/CBC/CTR加解密以及AES-CMAC
  • go-elasticsearch创建ik索引并进行查询操作
  • Mysql8应用架构
  • 开源身份和访问管理方案之keycloak(一)快速入门
  • CNN-day9-经典神经网络ResNet