📦 x-cmd pkg | rg - 文本搜索工具,grep 命令的现代化替代品

简介

rg(ripgrep)是由 github.com/BurntSushi 用 Rust 开发的文本搜索工具 ,能作为 grep 命令的替代工具。它能递归搜索目录中所有文件的内容高亮 显示匹配项,支持正则表达式,提供 JSON 格式 的搜索结果,默认遵守 .gitignore.ignore 文件规则,特别适用在代码库中查找特定文本。

快速上手

安装

sh 复制代码
eval "$(curl https://get.x-cmd.com)"        # 安装 x-cmd
x env use rg                                # 使用 x-cmd 安装 rg

使用

  1. 基本用法:

    sh 复制代码
    rg <PATTERN>                # 搜索与 PATTERN 匹配的文件内容(默认搜索当前目录)
  2. 控制搜索范围:

    sh 复制代码
    rg <PATTERN> [path]         # 指定搜索的目录或文件
    rg <PATTERN> -i             # 不区分大小写
    rg <PATTERN> -g 'h*'        # 仅符合条件的文件
    rg <PATTERN> -tpy           # 仅搜索指定类型的文件,如 python 代码文件
    rg <PATTERN> -Tpy           # 搜索时排除指定类型的文件,如 python 代码文件
  3. 控制输出结果的样式:

    sh 复制代码
    rg <PATTERN> -C2                    # 显示匹配项前后两行的内容
    rg <PATTERN> --sort=path            # 按文件路径排序(升序)
    rg <PATTERN> --sortr=path           # 按文件路径排序(降序)
    rg <PATTERN> -l                     # 只打印包含匹配项的文件路径
    rg <PATTERN> --files-without-match  # 只打印不包含匹配项的文件路径
    rg <PATTERN> -I -N                  # 只打印包含匹配项的行内容
    rg <PATTERN> -r TEXT                # 用给定的文本替换匹配项
    rg <PATTERN> --json                 # 以 JSON 格式输出搜索结果

与第三方工具组合使用

  1. 搭配 bat 使用,如使用 rg -p <PATTERN> | bat 命令分页查看搜索结果。

  2. 搭配 eza 使用,如使用 rg -l 'Hello' | eza -l --stdin 命令搜索和查看文件内容中包含 Hello 字符串的文件。

  3. 搭配 fzf 使用,如制作一个简易的搜索预览器:

    sh 复制代码
    rfz() {
        rg -l "$@" | fzf --preview "rg -p $@ {}"
    }
    rfz <PATTERN>

功能特点

  1. 性能优越:rg 基于 rust 实现,采用了多线程处理。与同类工具相比,在搜索大目录和大文件时表现优越。详情请参考下文的进一步阅读。
  2. 友好的默认设置
    • 遵循 .gitignore 文件以及其他常见的忽略文件,能自动排除不需要搜索的文件和目录。
    • 用颜色突出显示匹配的文本,便于用户快速识别结果。
    • 能递归搜索所有子目录,方便查找嵌套文件。
  3. 功能丰富:支持正则表达式、文件类型过滤、跨多行搜索、限制结果数量、排序等多种功能。
  4. 跨平台:支持主流操作系统,包括 Windows、Linux、MacOS。

竞品和相关项目

  1. grep:最常用的命令行文本搜索工具,可用于在文件中查找指定内容的文本行。它是 Unix 和类 Unix 操作系统的标准工具,通常与正则表达式一起使用来进行高级文本搜索。
  2. ack:专门设计用于代码搜索的工具。它默认会忽略版本控制目录和备份文件,并支持多种文件类型,通常用于搜索代码库中的文本,侧重于代码搜索。
  3. silver(The Silver Searcher):类似 ack 的代码搜索工具。它的主要特点是速度非常快,并使用了高度优化的算法进行搜索,特别适用于大型代码库或文本文件的搜索。

进一步阅读

更多内容请查阅 : pkg/rg

转载请标明原文链接www.x-cmd.com/pkg/rg


关注微信官方公众号 : oh my x

获取开源软件和 x-cmd 最新用法

相关推荐
萨格拉斯救世主34 分钟前
戴尔R930服务器增加 Intel X710-DA2双万兆光口含模块
运维·服务器
Jtti37 分钟前
Windows系统服务器怎么设置远程连接?详细步骤
运维·服务器·windows
yeyuningzi1 小时前
Debian 12环境里部署nginx步骤记录
linux·运维·服务器
EasyCVR2 小时前
萤石设备视频接入平台EasyCVR多品牌摄像机视频平台海康ehome平台(ISUP)接入EasyCVR不在线如何排查?
运维·服务器·网络·人工智能·ffmpeg·音视频
wowocpp3 小时前
ubuntu 22.04 硬件配置 查看 显卡
linux·运维·ubuntu
萨格拉斯救世主3 小时前
jenkins使用slave节点进行node打包报错问题处理
运维·jenkins
川石课堂软件测试3 小时前
性能测试|docker容器下搭建JMeter+Grafana+Influxdb监控可视化平台
运维·javascript·深度学习·jmeter·docker·容器·grafana
‍。。。3 小时前
使用Rust实现http/https正向代理
http·https·rust
Source.Liu3 小时前
【用Rust写CAD】第二章 第四节 函数
开发语言·rust
monkey_meng3 小时前
【Rust中的迭代器】
开发语言·后端·rust