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

shell脚本之正则表达式

目录

  • 一.常见的管道命令
    • 1.1sort命令
    • 1.2uniq命令
    • 1.3tr命令
    • 1.4cut命令
    • 1.5实例
      • 1.5.1统计当前主机连接状态
      • 1.5.2统计当前主机数
  • 二.正则表达式
    • 2.1正则表达式的定义
    • 2.2常见元字符(支持的工具:find,grep,egrep,sed和awk)
    • 2.3扩展正则表达式
    • 2.4位置锚定

一.常见的管道命令

1.1sort命令

  • sort命令可针对文本文件的内容,以行为单位来排序

    格式:sort  【选项】 参数
    
  • 常用选项

选项说明
-f忽略大小写
-b忽略每行前面的空格
-n按照数字进行排序
-r反向排序
-u等同于uniq,表示相同的数据仅显示一行
-t指定字段分隔符,默认使用【Tab】键分隔
-k指定排序字段
-o<输出文件>将排序后的结果转存至指定文件

1.2uniq命令

  • uniq命令用于检查及删除文本文件中重复出现的行列,一般与sort命令结合使用

    格式:uniq【选项】 参数
    
  • 常用选项

选项说明
-c进行计数,并删除文件中重复出现的行
-d仅显示连续的重复行
-u仅显示出现一次的行

1.3tr命令

  • 常用来对来自标准输入的字符进行替换,压缩和删除

    格式;tr 【选项】 【参数】
    
  • 常用选项

选项说明
-c保留字符集1的字符,其他的字符用字符集2替换
-d删除所有属于字符集1的字符
-s将重复出现的字符串压缩为一个字符串;用字符集2替换字符集1
-t字符集2替换字符集1,不加选项同结果
  • 常用参数
参数说明
字符集1指定要转换或删除的原字符集,当执行转换操作时,必须使用参数“字符集2”指定转换的目标字符集。但执行删除操作时,不需要参数“字符集2‘
字符集2指定要转换成的目标字符集

1.4cut命令

  • 显示行中指定的部分,删除文件中指定字段

     格式;cut 【选项】 参数
    

-常用选项

选项说明
-f通过指定哪一个字段进行提取。cut命令使用“TAB” 作为默认的字段分割符
-d“TAB”是默认的分割符,使用此选项可更改为其他的分隔符
–complement用于排除所指定的字段
–output-delimiter更改输出内容的分隔符

1.5实例

1.5.1统计当前主机连接状态

在这里插入图片描述

1.5.2统计当前主机数

在这里插入图片描述

二.正则表达式

2.1正则表达式的定义

  • 正则表达式,又称正规表达式,常规表达式
  • 使用字符串来描述,匹配一系列符合某个规则的字符
  • 正则表达式组成
    • 普通字符,包括大小写字母,数字,标点符号及一些其他符号
    • 元字符是指在正则表达式中具有特殊意义的专用字符

2.2常见元字符(支持的工具:find,grep,egrep,sed和awk)

匹配符表示含义
.表示任意一个字符
【】匹配括号中的一个字符
【^】表示否定括号中出现字符类中的字符,取反
\转义字符用于取消特殊符号的含义
^匹配字符串开始的位置
$匹配字符串结束的位置
{n}匹配前面的字表达式n次
{n,}匹配前面的子表达式不少于n次
{n,m}匹配前面的子表达式n到m次
【:alnum:】匹配任意字母和数字
【:alphabet:】匹配任意字母,大写或小写
【:lower:】小写字符a-z
【:upper:】大写字符A-Z
【:blank:】空格和TAB字符
【:space:】所有空白字符(新行,空格,制表符)
【:digital:】数字0-9
【:xdigt:】16进制数字
【:cntrl:】控制字符

实例1:.表示任意一个字符

在这里插入图片描述

示例2:【】匹配括号中的一个字符
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
示例3;【^】:表示否定括号中出现字符类中的字符,取反
在这里插入图片描述
在这里插入图片描述
示例4:【:alnum:】匹配任意字母和数字

在这里插入图片描述
示例5:元字符;(.)
在这里插入图片描述
在这里插入图片描述

2.3扩展正则表达式

  • 支持的工具;egrep,awk或grep -E和sed -r
限定符说明
*匹配前面子表达式0次或者多次
.*任意长度的任意符
匹配前面子表达式0次或者1次,即:可有可无
+与星号相似,表示其前面字符出现一次或多次,但必须出现一次,>=1
{n,m}匹配前面的子表达式n到m次
{m}匹配前面的子表达式n次
{n,}匹配前面的子表达式不少于n次>=n
{,n}匹配前面的子表达式最多n次,<=n
l用逻辑OR方式指定正则表达式要用的模式
()字符串分组,将括号中的字符串作为一个整体

实例1:*匹配前面子表达式0次或者多次
在这里插入图片描述
示例2;{n,m}匹配前面的子表达式n到m次
在这里插入图片描述
实例3:{n,}匹配前面的子表达式不少于n次>=n
在这里插入图片描述
实例4;{,n}匹配前面的子表达式最多n次,<=n
在这里插入图片描述
实例5:*匹配前面子表达式0次或者多次
在这里插入图片描述
实例6:*任意长度的任意字符
在这里插入图片描述
实例7:?匹配前面子表达式0次或者1次,即:可有可无
在这里插入图片描述
实例8:+与星号相似,表示其前面字符出现字符一次或多次,但必须出现一次,>=1
在这里插入图片描述
实例9:|逻辑OR方式指定正则表达式要用的模式
在这里插入图片描述
实例10:()字符串分组,将括号中的字符串作为一个整体
在这里插入图片描述
实例11:提取ip地址
在这里插入图片描述
在这里插入图片描述

2.4位置锚定

位置限定符说明
^行首锚定,用于模式的最左侧
$行尾锚定,用于模式最右侧
^ OATTERN^用于模式匹配整行
^$空行
^ [[:space;]]*$空白行
<或\b词首锚定,用于单词模式的左侧
>或\b词尾锚定,用于单词的右侧
<PATTERN>匹配整个单词

实例1;行尾锚定,用于模式的最右侧

在这里插入图片描述
实例2;行尾锚定,用于模式的最左侧
在这里插入图片描述
实例3:用于模式匹配整行,匹配的内容单独在一行
在这里插入图片描述
实例4;<:只匹配右侧单词
在这里插入图片描述
实例5:>;只匹配左侧的单词
在这里插入图片描述
实例6:过滤出不是以#开头的非空行

在这里插入图片描述

相关文章:

shell脚本之正则表达式

目录 一.常见的管道命令1.1sort命令1.2uniq命令1.3tr命令1.4cut命令1.5实例1.5.1统计当前主机连接状态1.5.2统计当前主机数 二.正则表达式2.1正则表达式的定义2.2常见元字符&#xff08;支持的工具&#xff1a;find&#xff0c;grep&#xff0c;egrep&#xff0c;sed和awk&…...

将SM2根证书预置到chromium中

最近花了很多精力在做chromium的GmSSL适配&#xff0c;协议和算法都已经完成&#xff0c;这篇文章是关于将SM2根证书预置到chromium中 我的开发测试环境是macos12.4&#xff0c;从chromium的代码和文档中得知证书获取和校验都是通过操作系统以及native api接口完成&#xff0c…...

linux安装mysql-8.0.33正确方式及常见问题

目录 获取mysql下载地址链接 解压安装包 复制文件到安装目录 添加用户和用户属组修改权限 创建存储数据的文件夹/usr/local/mysql 初始化安装 修改配置文件 创建日志文件并赋予对应权限 启动成功​编辑 创建软链接 之前安装过mysql&#xff0c;时间比较长忘记安装步骤了今天…...

Vim的插件管理器之Vundle

1、安装Vundle插件管理器 Vim可以安装插件&#xff0c;但是需要手动安装比较麻烦&#xff0c;Vim本身没有提供插件管理器&#xff0c;所以会有很多的第三方的插件管理器&#xff0c;有一个vim的插件叫做 “vim-easymotion”&#xff0c;在它的github的安装说明里有列出对于不同…...

机器学习丨1. 机器学习概述

Author&#xff1a;AXYZdong 硕士在读 工科男 有一点思考&#xff0c;有一点想法&#xff0c;有一点理性&#xff01; 定个小小目标&#xff0c;努力成为习惯&#xff01;在最美的年华遇见更好的自己&#xff01; CSDNAXYZdong&#xff0c;CSDN首发&#xff0c;AXYZdong原创 唯…...

清除pip安装库时的缓存

目录 1、命令清除缓存 2、路径手动清除 在使用pip安装Python库时&#xff0c;如果之前已经下载过该库&#xff0c;pip会默认使用缓存来安装库&#xff0c;而不是重新从网络上下载。缓存文件通常存储在用户目录下的缓存文件夹中&#xff0c;具体位置因操作系统和Python版本而异…...

gitee上传一个本地项目到一个空仓库

gitee上传一个本地项目到一个空仓库 引入 比如&#xff0c;你现在本地下载了一个半成品的框架&#xff0c;现在想要把这个本地项目放到gitee的仓库上&#xff0c;这时就需要我们来做到把这个本地项目上传到gitee上了。 具体步骤 1. 登录码云 地址&#xff1a;https://gite…...

力扣:63. 不同路径 II(Python3)

题目&#xff1a; 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish”&#xff09;。 现在考虑网格中有障碍物。那么从…...

【C语言】每日一题(多数元素)

多数元素&#xff0c;链接奉上 方法 1.摩尔投票2.合理但错误的方法2.1暴力循环2.2排序求出中间元素中间元素 1.摩尔投票 先来简单的介绍摩尔投票&#xff1a; 摩尔投票是一种用来解决绝对众数问题的算法。 什么是绝对众数呢&#xff1f; 在一个集合中&#xff0c;如果一个元素…...

后端 .net7 Minimal API 限流中间件(微信小程序无师自通十)

我的微信小程序使用.net7 Minimal API 作为后端&#xff0c;当服务器摆上公网后&#xff0c;可以观察到很多的攻击行为和暴力访问。所以&#xff0c;我需要使用微软的限流中间件部署相应的功能在服务器上 关键字&#xff1a; AddFixedWindowLimiter using Microsoft.AspNetCo…...

背上沉重的书包准备面试之react篇

目录 react特性&#xff1f; react生命周期&#xff1f; state和props区别 react中setState执行机制&#xff1f; 在react类组件形式中&#xff0c;setState第二个参数的作用&#xff1f; react事件机制&#xff1f; react事件绑定方式有哪些&#xff1f; react组件之间…...

OpenCV-Python中的图像处理-霍夫变换

OpenCV-Python中的图像处理-霍夫变换 霍夫变换霍夫直线变换霍夫圆环变换 霍夫变换 霍夫(Hough)变换在检测各种形状的技术中非常流行&#xff0c;如果要检测的形状可以用数学表达式描述&#xff0c;就可以是使用霍夫变换检测它。即使要检测的形状存在一点破坏或者扭曲也是可以使…...

W5500-EVB-PICO做UDP Client进行数据回环测试(八)

前言 上一章我们用开发板作为UDP Server进行数据回环测试&#xff0c;本章我们让我们的开发板作为UDP Client进行数据回环测试。 连接方式 使开发板和我们的电脑处于同一网段&#xff1a; 开发板通过交叉线直连主机开发板和主机都接在路由器LAN口 测试工具 网路调试工具&a…...

npm install 中 --save 和 --save-dev 是什么?

npm&#xff0c;全名 Node Package Manager&#xff0c;套件管理工具&#xff0c;package.json 会记下你在项目中安装的所有套件。 假设在项目中安装 lodash npm i --save lodash这样在 dependencies 中会出现&#xff1a; 如果修改了导入方式&#xff1a; npm i --save-dev …...

【Nginx17】Nginx学习:目录索引、字符集与浏览器判断模块

Nginx学习&#xff1a;目录索引、字符集与浏览器判断模块 今天要学习的内容有几个还是大家比较常见的&#xff0c;所以学习起来也不会特别费劲。对于目录的默认页设置大家都不会陌生&#xff0c;字符集的设置也比较常见&#xff0c;而浏览器的判断这一块&#xff0c;可能有同学…...

CA/TA开发编程实战-视频课程

Hello大家好&#xff0c;上架一门新的视频课程&#xff0c;课程主要包含两大部分&#xff0c;第一部分搭建环境&#xff0c;第二部分从无到有的编写代码。带领大家"手把手"编写。 具体大纲如下&#xff1a; qemu v8环境搭建 搭建一个qemu_v8的环境&#xff0c;用于…...

(7)(7.1) 使用航点和事件规划任务

文章目录 前言 7.1.1 设置Home位置 7.1.2 视频&#xff1a;制作并保存多路点任务 7.1.3 视频&#xff1a;加载已保存的多航点任务 7.1.4 使用说明 7.1.5 提示 7.1.6 自动网格 7.1.7 任务指令 7.1.8 任务结束 7.1.9 任务重置 7.1.10 MIS_OPTIONS 7.1.11 任务再出发 …...

OCR相关模块——版面分析技术、表格文本识别

OCR相关模块——版面分析技术、表格文本识别 版面分析技术表格识别技术 版面分析技术 版面分析模型&#xff1a;飞桨用到了yolov2检测模型&#xff0c;对文档图片中的文本、表格、图片、标题与列表区域进行检测。当前主流是用分割做。 表格识别技术 参考博文...

mov转mp4格式怎么转?

mov转mp4格式怎么转&#xff1f;众所周知&#xff0c;MOV视频格式是由苹果公司推出的常用的视频格式&#xff0c;能够在苹果软件及设备上使用。但是&#xff0c;如果将其应用于其他软件和设备上的话&#xff0c;可能会遇到文件无法正常播放的情况。在这个时候&#xff0c;我们需…...

SSL握手协议相关概念

下图为握手协议的流程图&#xff0c;具体的解释参考博客&#xff1a; 【下】安全HTTPS-全面详解对称加密&#xff0c;非对称加密&#xff0c;数字签名&#xff0c;数字证书和HTTPS_tenfyguo的博客-CSDN博客 下面梳理一下SSL协议中的一些细节。首先是相关名词&#xff1a;证书、…...

制造业数据库选型实战:为什么我们从 MySQL 迁移到 TiDB

写在前面 作为一个制造业数字化团队的开发负责人&#xff0c;我最怕听到的一句话就是&#xff1a;“数据库又慢了”。 MOM 平台上线 4 年&#xff0c;数据量从最初的几百 G 涨到几个 T。每次月底报表、跨工厂查询&#xff0c;系统就开始”喘气”。加索引、拆表、优化 SQL………...

ai辅助stm32开发,向快马描述需求即可获得精准的f103c8t6引脚配置代码

最近在做一个基于STM32F103C8T6的小项目&#xff0c;需要用到UART、I2C、PWM、ADC和GPIO等多种外设。作为嵌入式开发新手&#xff0c;最头疼的就是引脚分配和初始化代码的编写。好在发现了InsCode(快马)平台的AI辅助开发功能&#xff0c;用自然语言描述需求就能得到专业的代码解…...

告别云端推理:手把手教你用Vivado HLS在AX7350开发板上部署YOLOv3(附完整工程)

从零部署YOLOv3到AX7350开发板&#xff1a;FPGA加速实战全流程解析 在边缘计算领域&#xff0c;FPGA因其低延迟、高能效和可重构特性&#xff0c;成为深度学习模型部署的热门选择。本文将带您完成YOLOv3目标检测模型在AX7350开发板上的完整部署流程&#xff0c;从环境准备到最终…...

实战指南:基于快马ai生成物联网温湿度光照监测站stm32完整代码

最近在做一个物联网环境监测的小项目&#xff0c;需要用到STM32采集温湿度、光照数据并通过串口上报&#xff0c;同时还要在OLED屏上实时显示。作为一个经常和硬件打交道的开发者&#xff0c;我发现用InsCode(快马)平台可以快速生成符合需求的完整代码框架&#xff0c;省去了大…...

MQTT通信中的QoS级别详解:SpringBoot如何选择最适合的传输质量?

MQTT通信中的QoS级别详解&#xff1a;SpringBoot如何选择最适合的传输质量&#xff1f; 在物联网和分布式系统架构中&#xff0c;消息传输的可靠性往往直接关系到业务逻辑的正确性。MQTT协议作为轻量级发布/订阅模式的通信标准&#xff0c;其QoS&#xff08;服务质量&#xff0…...

Easy-Scraper:Rust 构建的现代化网页数据采集解决方案

Easy-Scraper&#xff1a;Rust 构建的现代化网页数据采集解决方案 【免费下载链接】easy-scraper Easy scraping library 项目地址: https://gitcode.com/gh_mirrors/ea/easy-scraper 在数据驱动决策的时代&#xff0c;网页数据采集已成为企业获取市场情报、研究人员收集…...

终极指南:如何用Save Image as Type一键转换网页图片格式

终极指南&#xff1a;如何用Save Image as Type一键转换网页图片格式 【免费下载链接】Save-Image-as-Type Save Image as Type is an chrome extension which add Save as PNG / JPG / WebP to the context menu of image. 项目地址: https://gitcode.com/gh_mirrors/sa/Sav…...

从零搭建SRS流媒体服务器:实现RTMP推拉流的实战部署指南

1. 为什么选择SRS搭建流媒体服务器&#xff1f; 最近几年直播和实时视频的需求爆发式增长&#xff0c;很多开发者都在寻找轻量高效的流媒体服务器方案。我测试过不少开源方案&#xff0c;最终发现SRS&#xff08;Simple Realtime Server&#xff09;是最适合个人和小团队自建的…...

XML Notepad:Windows平台XML文档编辑与转换的完整解决方案

XML Notepad&#xff1a;Windows平台XML文档编辑与转换的完整解决方案 【免费下载链接】XmlNotepad XML Notepad provides a simple intuitive User Interface for browsing and editing XML documents. 项目地址: https://gitcode.com/gh_mirrors/xm/XmlNotepad XML No…...

Path of Building:流放之路玩家必备的终极Build规划神器

Path of Building&#xff1a;流放之路玩家必备的终极Build规划神器 【免费下载链接】PathOfBuilding Offline build planner for Path of Exile. 项目地址: https://gitcode.com/GitHub_Trending/pa/PathOfBuilding 如果你正在玩《流放之路》并为复杂的Build规划感到头…...