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:过滤出不是以#开头的非空行

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

23.8.16日总结

原先写的评论是每级评论用缩进来区分&#xff0c;所以最多设置的是九级评论&#xff0c;修改了排版和格式&#xff1a; 还有管理员页面&#xff0c;查看文章时可以进行点赞&#xff0c;收藏的操作&#xff0c;现在进行了修改&#xff0c;将相关操作隐藏。 还有点击查看未发布…

语聚AI公测发布,大语言模型时代下新的生产力工具

语聚AI 公测发布 距离语聚AI内测上线已经过去近1个月。 这期间&#xff0c;我们共邀请了近百位资深用户与行业专家加入语聚AI产品体验。通过大家的热情参与积极反馈&#xff0c;我们不断优化并完善了语聚AI的功能与使用体验。 经过研发团队不懈的努力&#xff0c;今天语聚AI终…

深入源码分析kubernetes informer机制(三)Resync

[阅读指南] 这是该系列第三篇 基于kubernetes 1.27 stage版本 为了方便阅读&#xff0c;后续所有代码均省略了错误处理及与关注逻辑无关的部分。 文章目录 为什么需要resyncresync做了什么 为什么需要resync 如果看过上一篇&#xff0c;大概能了解&#xff0c;client数据主要通…

B树和B+树区别

B树和B树的区别 B树 B树被称为平衡树&#xff0c;在B树中&#xff0c;一个节点可以有两个以上的子节点。B树的高度为log M N。在B树中&#xff0c;数据按照特定的顺序排序&#xff0c;最小值在左侧&#xff0c;最大值在右侧。 B树是一种平衡的多分树&#xff0c;通常我们说m阶…

Unity-Linux部署WebGL项目MIME类型添加

在以往的文章中有提到过使用IIS部署WebGL添加MIME类型使WebGL项目在浏览器中能够正常加载&#xff0c;那么如果咱们做的是商业项目&#xff0c;往往是需要部署在学校或者云服务器上面的&#xff0c;大部分情况下如果项目有接口或者后台管理系统&#xff0c;后台基本都会使用Lin…

arcgis pro 3.0.2 安装及 geemap

arcgis pro 3.0.2 安装及 geemap arcgis pro 3.0.2 安装 arcgis pro 3 版本已经很多了&#xff0c;在网上找到资源就可以进行安装 需要注意的是&#xff1a;有的文件破解文件缺少&#xff0c;导致破解不成功。 能够新建地图就是成功了&#xff01; geemap安装 1.需要进行环…

FL Studio 21最新for Windows-21.1.0.3267中文解锁版安装激活教程及更新日志

FL Studio 21最新版本for Windows 21.1.0.3267中文解锁版是最新强大的音乐制作工具。它可以与所有类型的音乐一起创作出令人惊叹的音乐。它提供了一个非常简单且用户友好的集成开发环境&#xff08;IDE&#xff09;来工作。这个完整的音乐工作站是由比利时公司 Image-Line 开发…

Flutter源码分析笔记:Widget类源码分析

Flutter源码分析笔记 Widget类源码分析 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netEmail: 291148484163.com. Shenzhen ChinaAddress of this article:https://blog.csdn.net/qq_28550263/article/details/132259681 【介绍】&#x…

Spring源码深度解析一(IOCDI)

1. Spring架构设计 Spring框架是一个分层架构&#xff0c;他包含一系列的功能要素&#xff0c;并被分为大约20个模块 2. 设计理念 Spring是面向Bean的编程&#xff08;BOP&#xff1a;Bean Oriented Programming&#xff09;&#xff0c;Bean在Spring中才是真正的主角。Bean在…

物联网工程应用实训室建设方案

一、物联网工程应用系统概述 1.1物联网工程定义 物联网工程&#xff08;Internet of Things Engineering&#xff09;是一种以信息技术&#xff08;IT&#xff09;来改善实体世界中人们生活方式的新兴学科&#xff0c;它利用互联网技术为我们的日常生活活动提供服务和增益&am…

CI+JUnit5并发单测机制创新实践

目录 一. 现状问题 二. 分析原因 三. 采取措施 四. 实践步骤 五. 效能提升 资料获取方法 一. 现状问题 针对现如今高并发场景的业务系统&#xff0c;“并发问题” 终归是必不可少的一类&#xff08;占比接近10%&#xff09;&#xff0c;每次出现问题和事故后&#xff0c…

年至年的选择仿elementui的样式

组件&#xff1a;<!--* Author: liuyu liuyuxizhengtech.com* Date: 2023-02-01 16:57:27* LastEditors: wangping wangpingxizhengtech.com* LastEditTime: 2023-06-30 17:25:14* Description: 时间选择年 - 年 --> <template><div class"yearPicker"…

Vue2(组件开发)

目录 前言一&#xff0c;组件的使用二&#xff0c;插槽slot三&#xff0c;refs和parent四&#xff0c;父子组件间的通信4.1&#xff0c;父传子 &#xff1a;父传子的时候&#xff0c;通过属性传递4.2&#xff0c;父组件监听自定义事件 五&#xff0c;非父子组件的通信六&#x…

【算法题】螺旋矩阵II (求解n阶Z形矩阵)

一、问题的提出 n阶Z形矩阵的特点是按照之(Z)字形的方式排列元素。n阶Z形矩阵是指矩阵的大小为nn&#xff0c;其中n为正整数。 题目描述 一个 n 行 n 列的螺旋(Z形)矩阵如图1所示&#xff0c;观察并找出填数规律。 图1 7行7列和8行8列的螺旋(Z形)矩阵 现在给出矩阵大小 n&…

基于MIV的神经网络变量筛选

1.案例背景 一般神经网络中所包含的网络输人数据是研究者根据专业知识和经验预先选择好的,然而在许多实际应用中,由于没有清晰的理论依据,神经网络所包含的自变量即网络输入特征难以预先确定,如果将一些不重要的自变量也引入神经网络,会降低模型的精度,因此选择有意义的自变量特…

驱动 - 20230816

练习 1.编写LED灯的驱动&#xff0c;可以控制三个灯&#xff0c;应用程序中编写控制灯的逻辑&#xff0c;要使用自动创建设备节点机制 驱动头文件 ledHead.h #ifndef __HEAD_H__ #define __HEAD_H__#define PHY_GPIOE_MODER 0X50006000 #define PHY_GPIOE_ODR 0X50006014 #d…

leetcode228. 汇总区间

题目 给定一个 无重复元素 的 有序 整数数组 nums 。 返回 恰好覆盖数组中所有数字 的 最小有序 区间范围列表 。也就是说&#xff0c;nums 的每个元素都恰好被某个区间范围所覆盖&#xff0c;并且不存在属于某个范围但不属于 nums 的数字 x 。 列表中的每个区间范围 [a,b]…

MySQL入门学习教程(三)

上一章给大家说的是数据库的视图&#xff0c;存储过程等等操作&#xff0c;这章主要讲索引&#xff0c;以及索引注意事项&#xff0c;如果想看前面的文章&#xff0c;url如下&#xff1a; MYSQL入门全套(第一部)MYSQL入门全套(第二部) 索引简介 索引是对数据库表中一个或多个…

自动化安装系统(一)

系统安装过程 加载boot loader加载启动安装菜单加载内核和initrd文件加载根系统运行anaconda的安装向导 安装光盘中与安装相关的文件 安装autofs启动后会自动出现/misc目录。 在虚拟机设置中添加CD/DVD&#xff0c;使用系统ISO文件&#xff0c;登录系统后mount /dev/cdrom …

【Linux】进程的基本属性|父子进程关系

个人主页&#xff1a;&#x1f35d;在肯德基吃麻辣烫 我的gitee&#xff1a;Linux仓库 个人专栏&#xff1a;Linux专栏 分享一句喜欢的话&#xff1a;热烈的火焰&#xff0c;冰封在最沉默的火山深处 文章目录 前言进程属性1.进程PID和PPID2.fork函数创建子进程1&#xff09;为什…