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

RHCE---正则表达式

文章目录

  • 目录

    文章目录

    前言

    一. 文本搜索工具

     二.正则表达式  

    元字符 

     ^行首与$行尾

     点(.) 与星号(*)

     扩展正则

    总结


前言

正则表达式是文本三剑客中及其重要的一环,称之为灵魂也不为过,到底什么是正则表达式呢,让我们一起来了解以下!


一. 文本搜索工具

  • grep是linux中一种强大的文件搜索过滤工具,可以按照正 则表达式检索文件内容,并把匹配的结果显示到屏幕上 (匹配的内容会标红)
  • grep可以在一个或多个文件中检索,如果条件 中包含了空格,需要使用双引号引起 工作结果:如果搜索成功则返回0状态码,否则为1状态码

格式:

grep   -参数   "条件" 文件名   参数:
-i     忽略大小写
-c     统计匹配的行数
-v     取反,不显示匹配的行
-w 匹配单词
-E 等价于egrep,即启用扩展正则表达式
-n 显示行号
-rl 将指定目录内的文件打印
-A数字   匹配行及以下n行
-B数字   匹配行及以上n行
-C数字   匹配行及上下n行
-q 静默模式,没有任何内容输出,使用$?来判断是
否执行成功
-o     只显示匹配的内容

案列:

 案例:检索不能登录的账号名

[root@server ~]# grep -n "/sbin/nologin" /etc/passwd
#检索能登录的使用grep -vn
  •  #检索文件中包含sshd的行及以上5行
[root@timeserver ~]# grep -nB5 "sshd" /etc/passwd

  •  检索  文件系统信息中 / 目录 
[root@timeserver ~]# df -h | grep "/"

  •  #grep是能进行模糊匹配,精确匹配需要使用-w
#grep是能进行模糊匹配,精确匹配需要使用-w
[root@timeserver ~]# df -h | grep -w  "/"

  • #-o参数只显示匹配的内容
#-o参数只显示匹配的内容
[root@timeserver ~]# df -h | grep -wo  "/"
/

 二.正则表达式  

  •  在Shell脚本中,正则表达式是一种强大的文本处理工具,用于匹配、搜索和替换字符串

元字符 

元字符作用
.(点号)匹配任意一个字符
*匹配前面的字符0次或多次
{m,n}

将前一项字符重复匹配m-n次

?匹配前一个字符出现0次或1次。
^匹配字符串的开头。
$匹配字符串的结尾。
[]匹配字符[]集中的任意一个字符
[^]匹配除字符集中的任意一个字符以外的字符。^[]:以...开头
()表示一个子表达式,可以用于分组、捕获或引用。

词首【\或\b】 和词尾锚定【\>或者\b】

用于界定边界,仅匹配锚定词之间的内容

\用于转义元字符或特殊字符

POSIX字符类 

  • [:alnum:] 匹配任意字母或数字。
  • [:alpha:] 匹配任意字母。
  • [:blank:] 匹配空格或制表符。
  • [:cntrl:] 匹配控制字符。
  • [:digit:] 匹配数字。
  • [:graph:] 匹配非空白字符。
  • [:lower:] 匹配小写字母。
  • [:print:] 匹配任意可打印字符。
  • [:punct:] 匹配标点符号。
  • [:space:] 匹配任意空白字符。
  • [:upper:] 匹配大写字母。
  • [:xdigit:] 匹配十六进制数字。

案例:[ab] : 检索包含a或包含b的行信息,[ ] 中只能表示一个内容

# 检索包含d或者D的行信息
[root@server ~]# grep -n [dD] /etc/passwd

案例:[^ ] : 根据关键字检索后反向显示(反向着色)

# 检索不包含字母o的行信息
[root@server ~]# grep -n [^o] /etc/passwd
# 检索不以r开头且包含oot的行信息
[root@server ~]# grep -n [^r]oot /etc/passwd

  •  [-] : 表示范围,如:[0-9] [a-z] [A-Z] [a-zA-Z]
# 检索包含7-9的行信息
[root@server ~]# grep -n [7-9] /etc/passwd

# 检索包含数字和字母的行信息
[root@server ~]# grep -n [0-9a-zA-Z] /etc/sos/sos.conf 
  •  ^行首与$行尾

    # 检索root开头的行信息
    [root@server ~]# grep -n ^root /etc/passwd
    

  •  检索以"[" 开头的行信息
# 检索以"[" 开头的行信息
[root@server ~]# grep -n "^\[" /etc/sos/sos.conf 

注意: 需要过滤元字符时需要加 / 进行转译,去除元字符在正则中的功能,变为普通字符

  • 检索空白行
[root@server ~]# grep -n "^$" /etc/sos/sos.conf
  •  # 检索以r开头或o开头或t开头,独立对待
[root@server ~]# grep -n ^[root] /etc/passwd
  •  点(.) 与星号(*)

  • # 检索以r开头t结尾中间只有2个字符的行信息  
[root@server ~]# grep -n r..t /etc/passwd
#..代表任意两个字符
  •  # 检索至少包含1个w字母的行信息
[root@server ~]# grep -n ww* /etc/passwd
#*会对左边的字符重复匹配0次或多次
#写两个ww为了防止*对左边的字符匹配0次

[] :任意匹配

  • 案列:过滤文件中数字的前三位数
[root@timeserver ~]# grep -n "[1-9][0-9][0-9]" /etc/passwd
#该命令默认使用模糊匹配,仅匹配文件中数字的前三位,因此下图会过滤出65534,
#需要增加参数 -w 进行精确匹配

 {m,n} 重复匹配

     当需要匹配更多位数时(7位),上述命令需要重复写7次[0-9],命令过于繁琐,为简化命令

使用范围匹配:{m,n}:将前一项字符重复匹配m-n次。

  •   匹配文件中的三位或四位数
[root@timeserver ~]# grep -nw  "[0-9]\{3,4\}" /etc/passwd
#使用范围匹配时花需要将{}转译:花括号左边加\

锚定字符精确匹配

上述案列中使用参数 -w 进行精确匹配 。

精确匹配的另一种方式:使用锚定词:用于界定边界,仅匹配锚定词之间的内容 。

案例:检索三位数或四位,个位-千位数字取值范围是0-9

[root@timeserver ~]# grep -n "\<[0-9]\{3,4\}\>" /etc/passwd

 [:space:] 匹配空白字符

  • 案列: 检索至少一个空白字符
[root@timeserver ~]# egrep -n "^[[:space:]]+[^[:space:]]" /etc/grub2.cfg 
#+:对前面的字符匹配一次或多次 ^[]:以...开头 [^ ]:不以...开头 扩展正则表达式需用egrep

  • 案列:检索"listen"后跟0个或多个空白行结尾的信息 
[root@timeserver ~]# netstat -tan | grep "LISTEN[[:space:]]*$"

 

 扩展正则

?将前一项字符进行0次或者1次的重复匹配
+将前一项进行1次或者多次的重复匹配
(|)匹配|符号左边或者右边的字符
  •  使用扩展正则表达式是,需要添加参数grep -e 或 使用egrep
     
  •  显示文件中root sshd chrony 的相关信息
egrep -n "(root|sshd|chrony)" /etc/passwd 

  • 过滤/etc/yum.repos.d/中的基名字(绝对路径中最后的文件名)
  • [root@timeserver ~]# echo  /etc/yum.repos.d/ | egrep -o  [^/]+/?$
    #参数:-o :只显示红色匹配项

综合案列 

过滤 IP 地址

[root@timeserver ~]# ifconfig ens160 | egrep "([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])"


总结

相关文章:

RHCE---正则表达式

文章目录 目录 文章目录 前言 一. 文本搜索工具 二.正则表达式 元字符 ^行首与$行尾 点(.) 与星号(*) 扩展正则 总结 前言 正则表达式是文本三剑客中及其重要的一环&#xff0c;称之为灵魂也不为过&#xff0c;到底什么是正则表达式呢&#xff0c;让我们一起来了解以下…...

3D RPG Course | Core 学习日记一:初识URP

前言 最近开始学习Unity中文课堂M_Studio&#xff08;麦大&#xff09;的3D RPG Course&#xff0c;学习一下3D RPG游戏核心功能的实现&#xff0c;第一课我们学习到的是地图场景的编辑&#xff0c;其中涉及到了URP渲染。 我们首先进入Unity资源商店把地图素材和人物素材导入好…...

Spring Cloud 之RabbitMQ的学习【详细】

服务通信 分布式系统通信两种方式&#xff1a; 直接远程调用&#xff08;同步&#xff09;借助第三方间接通信&#xff08;异步&#xff09; 同步通讯的问题 Feign就属于同步通讯。存在的如下问题 耦合度高&#xff0c;每次添加新的模块就要修改原有模块的代码性能下降&am…...

第五章 I/O管理 六、I/O核心子系统

目录 一、核心子系统 1、I/O调度 2、设备保护 二、假脱机技术 1、脱机&#xff1a; 2、假脱机&#xff08;SPOOLing技术&#xff09;&#xff1a; 3、应用&#xff1a; 1.独占式设备&#xff1a; 2.共享设备&#xff1a; 4、共享打印机原理分析 三、总结 一、核心子系…...

winfrom窗体比例缩放

用于控件大小随窗体大小等比例缩放的C#代码。该代码可以在窗体重载中使用&#xff0c;以确保窗体中的控件在窗体大小改变时能够按比例缩放。 SetTag方法&#xff1a;该方法用于设置控件的Tag属性&#xff0c;以存储控件的宽度、高度、左边距、顶边距和字体大小等信息。SetCont…...

宇信科技:强势行业加速融入AIGC,同时做深做细

【科技明说 &#xff5c; 重磅专题】 大家可能没有想到&#xff0c;一向对外低调行事的宇信科技&#xff0c;在AIGC方面2023年就已经训练出了适配金融场景的垂直模型&#xff0c;并应用到了各产品线上&#xff0c;同时结合通用大模型预研了宇信金融系统编程大模型。宇信金融系…...

Google Play上的Android广告软件应用程序积累了200万次安装

大家好&#xff0c;今天我们要聊一聊Google Play上的一个热门话题——Android广告软件应用程序。最近&#xff0c;一些恶意应用程序在Google Play上累积了200万次的安装量&#xff0c;给用户推送了讨厌的广告&#xff0c;同时又隐藏了它们在受感染设备上的存在。 根据Doctor W…...

算法通关村第四关-黄金挑战栈的经典问题

括号匹配问题 描述 : 给定一个只包括 (&#xff0c;)&#xff0c;{&#xff0c;}&#xff0c;[&#xff0c;] 的字符串 s &#xff0c;判断字符串是否有效。 有效字符串需满足&#xff1a; 左括号必须用相同类型的右括号闭合。左括号必须以正确的顺序闭合。每个右括号都有…...

前端开发必备技能!用简单CSS代码绘制三角形,提升用户体验

&#x1f3ac; 江城开朗的豌豆&#xff1a;个人主页 &#x1f525; 个人专栏 :《 VUE 》 《 javaScript 》 &#x1f4dd; 个人网站 :《 江城开朗的豌豆&#x1fadb; 》 ⛺️ 生活的理想&#xff0c;就是为了理想的生活 ! 目录 ⭐ 专栏简介 &#x1f4d8; 文章引言 一、前…...

想翻译pdf文档,试了几个工具对比:有阿里(完全免费,快,好用,质量高,不用注册登录)道最好(有限免费) 百度(有限免费)和谷歌完全免费(网不好)

文档翻释作为基础设施&#xff0c;工作必备。 阿里 &#xff08;完全免费&#xff0c;快&#xff0c;好用&#xff0c;质量高&#xff0c;不用注册登录&#xff0c;无广告&#xff09;我给满分 https://translate.alibaba.com/#core-translation 先选好语言。 Google(完全免…...

c# .net linux ImageSharp+FastDFS+Base64上传图片,压缩图片大小,图像处理dcoker中使用也可以

.net 以前是用System.Drawing来处理图片&#xff0c;但是在dcoker 、linux上用不了 微软官方推荐用 1、SkiaSharp 如果项目运行到docker里&#xff0c;需要NUGET安装SkiaSharp.NativeAssets.Linux.NoDependencies 注意&#xff1a;如果你同时引用SkiaSharp.NativeAssets.Li…...

Flutter FittedBox

&#x1f525; 英文单词FittedBox &#x1f525; Fitted 通过有道翻译如下 &#xff1a; Box 通过有道翻译如下 &#xff1a; 对 FittedBox 的理解 我们可以将 FittedBox 理解为合适的盒子&#xff0c;将其它布局放到FittedBox这样一个盒子中&#xff0c;从而实现 盒子里面的…...

亚信科技:发挥自我优势深入AIGC,并购整合高瞻远瞩致力未来路

【科技明说 &#xff5c; 重磅专题】 亚信科技在IT提供商领域中是一个低调的前行者&#xff0c;在全球通信及大型企业市场中扮演着重要的角色。对于近年来如火如荼AI方面的投入与研究&#xff0c;亚信科技是否也很重视呢&#xff1f; 事实上&#xff0c;是肯定的回答。 在我看…...

【设计模式】第17节:行为型模式之“解释器模式”

一、简介 解释器模式为某个语言定义它的语法&#xff08;或者叫文法&#xff09;表示&#xff0c;并定义一个解释器用来处理这个语法。 二、适用场景 领域特定语言复杂输入解释可扩展的语言结构 三、UML类图 四、案例 对输入的特定格式的打印语句进行解析并执行。 packag…...

各传输介质详细知识点

一.百兆网传输介质 快速以太网(802.3u) 100Base-T2 电缆&#xff1a;2对3类UTP 最大段长&#xff1a;100m 特性阻抗&#xff1a;100 100Base-T4 电缆&#xff1a;4对3类UTP 最大段长&#xff1a;100m 特点&#xff1a;8B/6T&#xff0c;NRZ编码 特性阻抗&#xff1a;1…...

历史随想随记

古往今来所有的王侯将相如不都成为人们茶余饭后的笑谈&#xff0c;一个人无论多么厉害&#xff0c;多么聪明&#xff0c;多么奸诈&#xff0c;多么有权势&#xff0c;他们都逃不出一个结局——死亡&#xff0c;我觉得这是人生最大的悲哀。看历史看的多了&#xff0c;就会发现这…...

ClickHouse Java多个参数的UDF编写

一、环境版本 环境版本docker clickhouse22.3.10.22 docker pull clickhouse/clickhouse-server:22.3.10.22二、XML配置 2.1 配置文件 # 创建udf配置文件 vim /etc/clickhouse-server/demo_function.xml<functions><function><type>executable</type&…...

RPA除了和OCR、NLP技术结合,还能和什么技术结合?

鉴于业内现在也经常把RPA称为数字员工&#xff0c;就虚拟一个人的形象来解答吧。 首先是头部&#xff0c;实现人的“听看说想”能力&#xff1a; 听&#xff1a;ASR&#xff08;语音识别技术&#xff09;&#xff0c;主要用于听取和理解语音输入&#xff0c;让RPA能处理语音数…...

AssertionError: Torch not compiled with CUDA enabled

Pytorch和CUDA版本不兼容&#xff0c;运行python后&#xff08;终端输入python回车&#xff09;用以下代码测试 import torch print(torch.__version__) print(torch.cuda.is_available())返回False则说明目前的pytorch版本无法使用显卡&#xff0c;如下图所示 接着重装合适版…...

【Ubuntu 系统使用进入,自动进入base虚拟环境解决最全】

项目场景&#xff1a; 在Ubuntu上安装完anaconda后&#xff0c;发现每次打开终端后都会自动进入到base的虚拟环境中去&#xff0c;虽然在这些环境下使用问题不大&#xff0c;但一些软件的安装在虚拟环境下有影响。每次使用conda deactivate退出也很麻烦。 问题描述 安装玩之…...

MPNet:旋转机械轻量化故障诊断模型详解python代码复现

目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...

ubuntu搭建nfs服务centos挂载访问

在Ubuntu上设置NFS服务器 在Ubuntu上&#xff0c;你可以使用apt包管理器来安装NFS服务器。打开终端并运行&#xff1a; sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享&#xff0c;例如/shared&#xff1a; sudo mkdir /shared sud…...

(二)原型模式

原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...

CocosCreator 之 JavaScript/TypeScript和Java的相互交互

引擎版本&#xff1a; 3.8.1 语言&#xff1a; JavaScript/TypeScript、C、Java 环境&#xff1a;Window 参考&#xff1a;Java原生反射机制 您好&#xff0c;我是鹤九日&#xff01; 回顾 在上篇文章中&#xff1a;CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了&#xff0c;报错如下四、启动不了&#xff0c;解决如下 总结 问题原因 在应用中可以看到chrome&#xff0c;但是打不开(说明&#xff1a;原来的ubuntu系统出问题了&#xff0c;这个是备用的硬盘&a…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

多模态大语言模型arxiv论文略读(108)

CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题&#xff1a;CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者&#xff1a;Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...

深入浅出深度学习基础:从感知机到全连接神经网络的核心原理与应用

文章目录 前言一、感知机 (Perceptron)1.1 基础介绍1.1.1 感知机是什么&#xff1f;1.1.2 感知机的工作原理 1.2 感知机的简单应用&#xff1a;基本逻辑门1.2.1 逻辑与 (Logic AND)1.2.2 逻辑或 (Logic OR)1.2.3 逻辑与非 (Logic NAND) 1.3 感知机的实现1.3.1 简单实现 (基于阈…...

GitFlow 工作模式(详解)

今天再学项目的过程中遇到使用gitflow模式管理代码&#xff0c;因此进行学习并且发布关于gitflow的一些思考 Git与GitFlow模式 我们在写代码的时候通常会进行网上保存&#xff0c;无论是github还是gittee&#xff0c;都是一种基于git去保存代码的形式&#xff0c;这样保存代码…...