XUbuntu22.04之自定义fd+rg极速命令组合(二百二十二)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长!

优质专栏:Audio工程师进阶系列原创干货持续更新中……】🚀
优质专栏:多媒体系统工程师系列原创干货持续更新中……】🚀

人生格言: 人生从来没有捷径,只有行动才是治疗恐惧和懒惰的唯一良药.

更多原创,欢迎关注:Android系统攻城狮

欢迎关注Android系统攻城狮

1.前言

本篇目的:在使用fd和rg命令过程中,发现他们组合起来使用还是太繁琐了,他们这么强,自定义fd+rg极速命令组合,使用起来效率更高。

2. Linux fd和rg命令介绍

  • Linux 系统中有许多命令行工具可以帮助用户高效地管理和使用文件描述符(file descriptor,简称 fd)。在 Linux 中,每个打开的文件或套接字都有一个唯一的文件描述符,它是一个非负整数。文件描述符通常用于系统调用,例如 read、write 和 close。在用户空间,可以使用标准 I/O 函数(如 fopen、fdopen、socket 等)获取文件描述符。
  • fd 命令是一个用于探索和管理文件描述符的工具。它可以用来查看当前进程的所有文件描述符、查找特定文件描述符的信息、监视文件描述符的变化等。fd 命令的主要用途是提高系统管理员和开发人员在处理文件描述符方面的效率。
  • 下面是一些常用的 fd 命令选项:
  • fd list:列出当前进程的所有文件描述符。
  • fd show:显示有关指定文件描述符的信息。
  • fd add:为当前进程创建一个新的文件描述符。
  • fd rm:删除指定的文件描述符。
  • fd watch:监视文件描述符的变化。
    rg 命令是 “ripgrep” 的简称,是一个快速的文本搜索工具。与 grep 相比,rg 不仅具有更高的搜索速度,还支持正则表达式、多线程以及更多的实用功能。rg 命令在许多情况下都可以替代 grep,尤其是在需要搜索大量文件或需要使用正则表达式时。
    下面是一些常用的 rg 命令选项:
  • rg search:搜索指定模式。
  • rg --files:只输出包含匹配文本的文件名。
  • rg --hidden:搜索隐藏文件。
  • rg --glob '!.git/*':忽略 Git 仓库中的文件。
  • rg --threads:使用多线程搜索以提高搜索速度。
  • rg --vimgrep:使用 Vim 的语法进行搜索。
  • rg --ignore-case:忽略大小写。
    使用示例:
  1. 搜索当前目录下包含 “linux” 的所有文件:
rg linux
  1. 搜索当前目录下隐藏的文件中包含 “linux” 的文件:
rg linux --hidden
  1. 搜索除了 Git 仓库以外的所有文件中包含 “linux” 的文件:
rg linux --glob '!.git/*'
  1. 搜索当前目录下包含 “linux” 的所有文件,并使用多线程以提高搜索速度:
rg linux --threads

总之,fd 命令和 rg 命令都是 Linux 系统中非常实用的工具,它们可以帮助用户更好地管理和使用文件描述符以及进行高效文本搜索。掌握这两个命令,将使你在使用 Linux 系统时更加得心应手。

3.fd+rg组合方案

v1.0版本

emacs fd_rg_v1.0.sh

#!/bin/bash
# v1.0
# 检查参数数量是否至少为2
if [ "$#" -lt 2 ]; thenecho "Usage: $0 Input your [dir] and [keyword]."exit 1
fi# 定义参数变量
PATTERN="$2"
SEARCH_KEYWORD="$3"# 检查是否有提供第二个参数(路径)
if [ "$#" -eq 3 ]; thenSEARCH_PATH="$1"
elseSEARCH_PATH="."
fiecho "S1 = " $1 
echo "S2 = " $2
echo "S3 = " $3fd -H -g "$PATTERN" "$SEARCH_PATH" | xargs rg -. "$SEARCH_KEYWORD"

v2.0版本

emacs fd_rg_v2.0.sh

# v2.0
# 检查参数数量是否至少为3
if [ "$#" -lt 3 ]; thenecho "Usage: $0 Input your [dir], [*.file], [keyword]."exit 1
fi# 定义参数变量
SARCH_DIR="$1"
SEARCH_FILE="$2"
SEARCH_KEYWORD="$3"# echo "S1 = " $1 
# echo "S2 = " $2
# echo "S3 = " $3fd -H -g "$SEARCH_FILE" "$SARCH_DIR" | xargs rg -. "$SEARCH_KEYWORD"

v3.0版本

emacs fd_rg_v3.0.sh

# v3.0
# 检查参数数量是否至少为3(第一:目录, 第二:文件; 第三:字符串)
if [ "$#" -lt 2 ]; thenecho "Usage: $0 Input your [dir(option)], [*.file], [keyword]."exit 1
fi# 定义参数变量
SARCH_DIR=$1
SEARCH_FILE=$2
SEARCH_KEYWORD=$3if [ $# -eq 2 ]; then  fd -H -g "$1" -g "$(pwd)" | xargs rg -. "$2"
elif [ $# -eq 3 ]; then  fd -H -g "$SEARCH_FILE" -g "$SARCH_DIR" | xargs rg -. "$SEARCH_KEYWORD"
fi#echo "S1 = " $1 
#echo "S2 = " $2
#echo "S3 = " $3
#echo "pwd =" $(pwd)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/755360.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《探索AI辅助研发的未来之路》

在当今科技飞速发展的时代,人工智能(AI)已经逐渐渗透到各个领域,其中之一便是研发领域。AI辅助研发正以惊人的速度改变着我们对于创新和发现的理解。本文将从技术进展、行业应用、挑战与机遇、未来趋势、法规影响以及人才培养等方…

Vcenter 6.7部署文档

下载VMware-VCSA-all-6.7.0 iso文件 找到installer文件夹 ## 找到win32目录 点击installer 接下来按照截图一步步安装 开始进行安装 进度部署第二阶段 配置一个内部NTP 服务器 配置VCenter的登录用户名和密码 ## vcenter配置开始

适用于 Windows电脑的 iPad 数据恢复软件

如何在 Windows 11/10/8/7 上从 iPad 恢复丢失的数据?其实很简单。您只需在 Windows 11/10/8/7 上下载并安装 iPad 数据恢复软件。然后您可以运行该软件扫描您的 iPad 并查找已删除/丢失的数据。iPad 中的 iOS 数据(包括消息、聊天记录、联系人、照片和视…

Vue学习日记 Day7 —— json-server工具、基于VueCli自定义创建项目、postcss插件

一、前一天Vuex总结 1、state作用:存放数据定义:state:{//数据 }使用://放在data下(1)根节点直接访问this.$store.state.数据名(2)模块直接访问this.$store.state.模块名.数据名(3)根节点辅助函数mapState([所需要的数据])(4)模块辅助…

CTF题型 SSTI(1) Flask-SSTI-labs 通关 题记

CTF题型 SSTI(1) Flask-SSTI-labs 通关 题记 文章目录 CTF题型 SSTI(1) Flask-SSTI-labs 通关 题记前记获取键值或下标的方式获取属性的方式 Level 1 no wafLevel 2 bl[\{\{]Level 3 no waf and blindLevel 4 bl[[, ]]获取键值或下标 Level 5 bl[\, "]Level 6 bl[_]Level …

Java安全基础 必备概念理解

Java安全基础 关键概念汇总 文章目录 Java安全基础 关键概念汇总前置知识1.构造器this以及包的使用2.继承3.重写/ 重载 / super4.多态5.区分和equals方法6.toString的使用7.Object的概念8.static,final,代码块static代码块final 9.动态代理10.类的动态加载1)类加载器含义&#…

【教程】APP加固的那些小事情

摘要 APP加固是保护APP代码逻辑的重要手段,通过隐藏、混淆、加密等操作提高软件的逆向成本,降低被破解的几率,保障开发者和用户利益。本文将介绍APP加固常见失败原因及解决方法,以及处理安装出现问题的情况和资源文件加固策略选择…

【InternLM 笔记】OpenXLAB浦源的基本操作

OpenXLab网址 网址:OpenXLab浦源 模型 创建模型 页面右上角选择【创建】然后选择【创建模型】 创建模型的页面如下 感觉页面中的提示信息填写相应的内容,全部填完后点页面下方的【立即创建】完成模型的创建 模型上传 安装所需的工具 apt install …

目标检测——玉米叶感染数据集

一、重要性 首先,玉米作为世界上重要的粮食作物之一,其生长状况直接影响到粮食产量和粮食安全。玉米叶感染是玉米生长过程中常见的病害之一,会导致玉米叶片出现肿胀、皱缩、扭曲变形等症状,严重时甚至可能形成瘤状物。因此&#…

【LIMS】微服务

目录 一、服务解决方案-Spring Cloud Alibaba1.1选用原因(基于Spring Cloud Alibaba的试用场景)1.2 核心组件使用前期规划 部署 nacos部署 mino使用JavaFreemarker模板引擎,根据XML模板文件生成Word文档使用JavaFlowable 工作流引擎前端 -vue…

js获取年月日

const date new Date()const options { year: numeric, month: 2-digit, day: 2-digit }const dateString date.toLocaleDateString(zh-CN, options)const [year, month, day] dateString.split(/)console.log(year, month, day) 人工智能学习网站: https://ch…

Kubernetes 项目整体布局 el-container

整体布局整体布局 你可能会去敲不同的项目,有很多种平台。那么其实都是可以复用的。唯一不同的就是main里面的内容是不同的,边框架子都是相同的。其实框架是不怎么变化的,变化的是main里面。 src/layout/Layout.vue 这里需要新增一个页面Lay…

高效求解!图片转换方法大揭秘,清晰度零损失!

在数字时代,图片转换是我们处理和共享图像时经常面临的任务之一。随着不同平台、应用程序和需求的不断增多,高效的图片转换方法变得至关重要。本文将为您揭秘一系列高效的图片转换方法,确保在转换过程中清晰度零损失。 无论是为了适应不同的…

Docker Desktop 安装 ClickHouse 超级简单教程

Docker desktop 安装 clickhouse 超级简单 文章目录 Docker desktop 安装 clickhouse 超级简单 什么是 Docker ?安装下准备安装Docker配置安装 ClickHouse配置数据库密码DBeaver 测试创建表总结 什么是 Docker ? 下载 Docker desktop Docker Desktop …

三菱FX3U/FX5U的采集方式有哪些?如何快速采集?

在工业自动化领域,PLC(可编程逻辑控制器)扮演着至关重要的角色。三菱FX3U和FX5U作为三菱电机公司推出的两款经典PLC产品,广泛应用于各种工业自动化控制系统中。为了更好地实现对这些PLC设备的数据采集与远程控制,我们引…

java数据结构与算法刷题-----LeetCode134. 加油站

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 贪心2. 动态规划 1. 贪心 解题思路:时间复杂度O(…

太阳辐射传感器的工作原理

TH-FS1太阳辐射传感器是一种专门用于测量太阳辐射能量的设备,它可以广泛应用于太阳能利用、气象、农业、建筑材料老化以及大气污染等部门。太阳辐射传感器有多种类型,其中太阳总辐射传感器和热电式太阳总辐射传感器是较为常见的两种。 太阳总辐射传感器主…

华为云HECS+NODEJS开启WEB服务后无法外网访问

接上篇:使用华为云HECS服务器nodejs开启web服务-CSDN博客 目录 1.首先确认安全组是开放了端口的。 2.然后开启端口 1.首先确认安全组是开放了端口的。 这里我是用的3000端口 然后需要检查一下服务器防火墙是否开启了这个端口。 输入命令检查一下3000端口是否开…

基于Django兴趣班预约管理系统

技术:pythonmysqlvue 一、系统背景 当前社会各行业领域竞争压力非常大,随着当前时代的信息化,科学化发展,让社会各行业领域都争相使用新的信息技术,对行业内的各种相关数据进行科学化,规范化管理。这样的大…

每日汇评:黄金等待金叉确认和央行裁决

金价周二早盘徘徊在每盎司2160美元附近,等待主要央行的决定; 尽管美债收益率疲软,但在日本央行和澳央行做出谨慎裁决之前,美元依然坚挺; 随着RSI指数再次转为看涨,黄金价格在日线图上试探金叉形态&#xff…