Linux正则表达式

Linux Shell脚本之正则表达式 正则表达式RE 重要的文本处理工具:vim sed awk grep 1.什么是正则表达式? 正则表达式(regular expression,RE)是一种字符模式,用于在查找过程中匹配指定的字符。 在大多数程序里,正则表达式都被置于两个斜杠之间;例如/l[oO]ve/就是由正斜杠界定的正则表达式。 它将匹配被查找的行中任何位置出现的相同模式,在正则表达式中,元字符是重要的概念 匹配数字:1+$ ^:以xxx开头,+前面的对象出现一个或多个,$是以xxx结尾,[]里面的是匹配的模式 匹配mail:[a-z 阅读详情

正则表达式

简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,通过定义的这些特殊符号的辅助,系统管理员就可以快速过滤,替换或输出需要的字符串。linux正则表达式一般以行为单位匹配处理的。字符集LC_ALL=C。

容易混淆的两个注意事项:

  • 正则表达式应用非常广泛,存在于各种语言中,例如php,python,java等。但是以下所讨论的都是linux系统运维工作中的正则表达式,即linux正则表达式,最常应用正则表达式的命令就是grep,sed,awk。
  • 正则表达式与通配符特殊字符是有本质区别的。ls *.log,这里的*是通配符表示所有。正则表达式中*是重复前面的一个字符0次或多次。

正则表达式(Regular Expressions)实际就是一些特殊字符,赋予了它特定的含义。

正则表达式元字符由以下字符组成:

^ $ . [ ] { } - ? * + ( ) | \

基础的正则表达式BRE

实战测试数据:

[root@ianLinux ~]# cat oldboy.log 
I am oldboy teacher!
I teach linux.

I like badminton ball,billiard ball abd chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.

not 4900000448.
my god,i am not oldbey,but OLDBOY!
oldb y
[root@ianLinux ~]# export LC_ALL=C #注意字符集

(1)“^word” 以word开头的。
(2)“word$”以word结尾的。
(3)“^$” 表示空行。

这里写图片描述

这里写图片描述
过滤空行。oldboy.log里面就有两行空行。
这里写图片描述
把空行去掉。
这里写图片描述


(4)“.”代表且只能代表任意一个字符。
(5)“\” 转义字符,例如.只代表点本身,让有着特殊身份意义的字符还原本身意义。
(6)“*” 重复0个或多个前面的一个字符。
(7)“.*” 匹配所有字符。延伸^.*以任意多个字符开头。.*$以任意多个字符结尾。

grep "." oldboy.log
这里写图片描述

grep "oldb.y" oldboy.log
这里写图片描述

grep ".*" oldboy.log
这里写图片描述

grep "0*" oldboy.log
这里写图片描述


(8)[abc] 匹配字符集合内的任意一个字符[a-z]、[A-Z]、[0-9]。
(9)[^abc] 匹配不包含^后的任意字符的内容。中括号里的^为取反。
(10)
\{n,m\} 重复n到m次,前一个重复的字符。如果用egrep/sed -r可以去掉斜线。
\ {n,\} 重复至少n次,前一个重复的字符。如果用egrep/sed -r可以去掉斜线。
\{n\} 重复n次,前一个重复的字符。如果用egrep/sed -r可以去掉斜线。
egrep,grep -E或sed -r过滤一般特殊字符可以不转义。

grep "[abc]" oldboy.log
这里写图片描述

grep "[0-9]" oldboy.log
这里写图片描述

grep "[^a-z]" oldboy.log
这里写图片描述

grep -E "0{3,5}" oldboy.log
这里写图片描述

grep -E "0{3,}" oldboy.log
这里写图片描述

grep "0\{3\}" oldboy.log与grep -E "0{3}" oldboy.log
这里写图片描述

扩展的正则表达式ERE

(egrep或grep -E)
新的测试数据:

[root@ianLinux ~]# vi oldboy.log              

I am oldboy teacher!
I teach linux.

I like badminton ball,billiard ball abd chinese chess!
my blog is http://oldboy.blog.51cto.com
our site is http://www.etiantian.org
my qq num is 49000448.

not 4900000448.
my god,i am not oldbey,but OLDBOY!
oldb y
good
goood
gd

(1) + 重复一个或多个前面的字符(与*区别)
(2) ? 重复0次或1次前面的字符
(3) | 用或的方式查找多个符号的字符串

grep -E "go+d" oldboy.log与grep -E "go*d" oldboy.log

这里写图片描述

grep -E "go?d" oldboy.log
这里写图片描述

grep -E "god|good" oldboy.log
这里写图片描述

YoloV8优化:感受野注意力卷积运算(RFAConv),效果秒杀CBAM和CA等 | 即插即用系列 感受野注意力卷积运算(RFAConv),解决卷积块注意力模块(CBAM)和协调注意力模块(CA)只关注空间特征,不能完全解决卷积核参数共享的问题 阅读详情

相关推荐

Unity卡牌游戏UI框架:数据驱动与模块化设计实践

在Unity游戏开发中,UI系统是连接玩家与游戏逻辑的关键桥梁,其核心在于实现数据与表现的高效同步。数据驱动设计通过分离数据模型、逻辑状态与视图表现,利用观察者模式自动响应状态变化,确保了代码的清晰与可维护性。这种架构显著提升了开发效率,尤其在需要复杂状态管理和实时反馈的交互场景中,如卡牌游戏的拖拽、布局与动画系统。基于模块化思想,开发者可以将卡牌视图、布局管理、区域控制等组件像积木一样组合,快速构建出动态的手牌弧形布局、战场区域管理等特色功能。通过集成对象池、图集优化等性能方案,还能有效管理绘制调用与网格

weixin_34262482的博客 453

Linux下LC_ALL=C的含义

在很多的shell脚本中,我们经常会看见某一句命令的前面有一句“LC_ALL=C” SAR_CMD="LC_ALL=C sar -u -b 1 5 | grep -i average " 这到底是什么意思? LC_ALL=C 是为了去除所有本地化的设置,让命令能正确执行。

庖丁解牛 2万+

Matlab实战:从零搭建弹道导弹六自由度仿真模型(附完整代码)

本文详细介绍了如何使用Matlab从零搭建弹道导弹六自由度仿真模型,涵盖仿真环境配置、核心运动方程实现、气动力建模及仿真结果分析。通过完整代码示例,帮助读者掌握弹道导弹六自由度仿真的关键技术,适用于航空航天工程和复杂系统建模领域。

x8y9z0的博客 946

一句话加速grep近30倍

最近做一个项目,需要从表达矩阵中提取单个特定基因的表达值。最开始时文件比较小,使用awk单个读取处理也很快,但后来数据多了,从一个1.2 G的文件中提取单个基因的表达需要30 s,用grep来写需要25 S,这在平时写程序是可以接受的,但在网站上是接受不了的。所以就想着如何优化一下。探索下来优化也很简单,把grep换为再加其它参数速度就快了近倍,把时间控制在1 s左右。下面是整个探索过程 (写这篇总结文章是在早晨,服务器不繁忙,所以下面的示例中只能看出来快了5倍左右。这也表明不加LC_All=C时。

悟道西方 1363

python特征选择pso_【来点干货】机器学习中常用的特征选择方法及非常详细的Python实例...

花费了很长时间整理编辑,转载请联系作者授权,违者必究。特征选择(Feature selection)是在构建预测模型的过程中减少输入变量的一个过程。它是机器学习中非常重要的一步并在很大程度上可以提高模型预测精度。这里我总结了一些机器学习中常见的比较有用的特征选择方法并附上相关python实现code。希望可以给大家一些启发。首先,我们为什么要进行特征选择呢?它有以下几个优点:减少过拟合:冗余数据常...

weixin_39927158的博客 1161

Codex 100个真实案例 - 用AI画业务流程图Mermaid(产品经理都馋哭了)

还在用 Visio、ProcessOn 拖拖拽拽画流程图?改一个箭头方向就要调半天?本案例教你用 Codex 自然语言描述业务流程,AI 自动转为 Mermaid 代码,一秒生成专业流程图、时序图、甘特图、饼图!还能搭建在线渲染工具、批量导出 PNG/SVG、集成到文档系统。产品经理、架构师、项目经理都能用,从此画图再也不是体力活!

yueyeguzhuo的专栏 345

linux正则表达式之-基础正则表达式(基于grep)

linux正则表达式: 简单的说,正则表达式就是为处理大量的字符串而定义的一套规则和方法,如:假设@代表123456,!代表abcde.通过定义的这些特殊符号的铺助,系统管理员就可以快速的过滤,替换或输出需要的字符。 使用正则表达式注意事项: 1.linux正则一般是以行为单位处理的。 2.alias grep='grep --color=aut...

weixin_34358365的博客 741

Docker安装并运行AnythingLLM的详细教程

通过本文的介绍,你已经掌握了如何在 CentOS 系统上使用 Docker 安装并运行 AnythingLLM。AnythingLLM 提供了强大的功能,支持本地知识库搭建和多模态输入,非常适合个人和企业使用。希望本文能帮助你快速上手并搭建自己的 AI 知识库。

加入“Super Entity”,与全能开发团队共探AI智能体与数字人项目,开启前沿技术之旅。 5841

Linux的locale, LC_ALL 和LANG

Linux的locale, LC_ALL 和LANG 什么是locale locale 这个单词中文翻译成地区或者地域,其实这个单词包含的意义要宽泛很多。locale 是根据计算机用户所使用的语言,所在国家或者地区,以及当地的文化传统所定义的一个软件运行时的语言环境。 比如说: 在“简体中文”环境,运行date 命令,显示的是: 2015年01月07日 星期三 10:50:20 C

Nicolase的专栏 4653

相机Camera日志分析之二十六:高通相机Camx 基于预览1帧的process_capture_request重要完整日志【见注释】

文章摘要:该日志记录了一个相机预览请求的处理流程。系统从HAL层开始处理capture_request,填充预览/拍照的buffer数据,并激活相关pipeline。流程涉及多个模块(ChiNodeWrapper、IFE、IPE等)的协同工作,包括获取ImageBuffer、设置请求映射关系、处理特征美颜参数(开关状态0,级别1)等关键步骤。日志详细展示了从请求下发到各节点处理的完整链路,包含多次buffer获取、fence设置及数据传递过程,最终完成预览帧数据的处理和保存(第0帧和第1帧)。该流程体现了移

515

多模态轨迹预测:行人、车辆的交互式推理

多模态轨迹预测:行人、车辆的交互式推理 ,人工智能,计算机视觉,大模型,AI,本文围绕多模态轨迹预测中行人与车辆的交互式推理展开,介绍了其定义,即综合多种信息预测交通参与者未来多种轨迹。涵盖基础概念如轨迹表示、模态、交互关系,技术框架包括数据处理、特征提取、预测模型(物理、机器学习、深度学习模型等)及结果评估。还探讨了交互式推理方法、面临的不确定性处理等挑战、应用场景、未来发展方向、相关工具及实际案例,展现了该技术在智能交通等领域的重要性与发展潜力。​

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 14万+

linux内核高手,走向Linux操作系统高手之路 编译内核祥解

下载源代码Linux内核总是不断发展的,最新的内核Kernel2.6.0对USB2.0予以正式的支持,以及内核模块文件后缀最显著的一个变化由*.o到*.ko等等,我们可以从www.kernel.org下载到tarball的源代码包。前期准备大家都知道的要先升级“module-init-tools“软件包,否则的话,等你安装内核模块文件的时候,系统会提示你:Warning: you may need...

weixin_33316051的博客 240

Qt Creator 下载和安装

在线安装程序是一个小型的安装程序,它将在您的计算机上下载和安装 Qt Creator。离线安装程序是一个较大的安装包,您可以将其保存在本地,并在没有网络连接的情况下安装 Qt Creator。在 Qt 官方网站上,您可以找到 Qt Creator 的下载页面。Qt Creator 是一款跨平台的集成开发环境(IDE),用于开发基于 Qt 框架的应用程序。在这一步中,您可以选择是否安装 Qt Creator 的附加组件。一旦您完成了组件的选择,安装程序将开始将 Qt Creator 安装到您的计算机上。

HackLogic的博客 6817

Linux 正则表达式

patternpattern环境准备。

LLLLYYYRRRRRTT的博客 750

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Linux 什么是正则表达式

正则表达式,是一个描述一组字符串的模式。它主要用来文本搜索和字符串处理,一个正则表达式匹配单个字符或一个字符串,或者字符串的一部分。 在计算机科学中,正则表达式是指一个用来描述或者匹配一系列符合某个句法规则的字符串的单个字符串。在很多文本编辑器或其他工具里,正则表达式通常被用来检索和替换那些符合某个模式的文本内容。许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表

魔筝炼药师 1791

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Linux中的正则表达式

​ 2)高级功能:扩展正则表达式(ERE,extended regular expression)​ 1) 基本正则表达式(BRE,basic regular expression)POSIX规范将正则表达式的分为了两种。

sansheng__的博客 639

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Linux正则表达式详解

正则表达式: Regual Expression, REGEXP 由一类特殊字符及文本字符所编写的模式,其中有些字符不表示其字面意义,而是用于表示控制或通配的功能; 一、正则表达式的意义 处理大量的字符串 处理文本 通过特殊符号的辅助,可以让linux管理员快速过滤、替换、处理所需要的字符串、文本,让工作高效。 通常Linux运维工作都要面临大量带着字符串的内容, 如: 配置文件 程序代码 命令输出结果 日志文件 且此类字符串内容,我们常会有特定的需要,查找出符合工作需要的特定的字符串,因

向上的"狼"的博客 3150

linux 扩展正则表达式

linux 扩展正则表达式在使用的时候配合 grep 命令 需要使用 grep -E 或者egrep 命令使用,0* 0次 没有 grep会把文件内容都显示出来。[oldboy]查找的内容是o l d b o y 而不是oldboy整体。/etc/ssh/sshd_config 排除文件中的#和空。表示的信息0次或1次表示的内容和{0,1}其实是一样的。前一个符号连续出现0次或1次 有或没有。取出文件中的身份证号码。排除文件中的#和空行。

tian830937的专栏 1178

正则表达式 linux shell

正则表达式 热身 正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。 例如 grep, expr, sed , awk. 或Vi中经常会使用到正则表达式,为了充分发挥 shell 编程的威力,需要精通正则表达式。 转载请标明:http://blog.youkuaiyun.com/y

ysdaniel的专栏 9万+

linux-正则表达式

http://www.cnblogs.com/deerchao/archive/2006/08/24/zhengzhe30fengzhongjiaocheng.html 1,shell通配符 注意,这里的通配符虽然和正则表达式相似,但是是基于bash解释器解析的,而正则表达式由正则引擎的软件(如awk,grep,sed等)解析,二者完全不同。 通配符字符

gexiaobaoHelloWorld的专栏 1万+

linux查找固定开头y结尾的正则表达式_Linux正则表达式

一、基础正则表达式(一)基础字符列表正则表达式就是一套处理字符串的规则和方法。以行为单位对字符串进行处理,达到快速过滤或者替换字符串的目的。下面是正则表达式的特殊字符:(二)实例1、测试文件[root@localhost project]# cat test.txt I like code,book what do you like my friends like riding,movie2、测...

weixin_31119221的博客 1038

【Linux】正则表达式

正则表达式是一种可供Linux工具过滤文本的自定义模板,Linux工具(如sed、gawk)会在读取数据时使用正则表达式对数据进行模式匹配。 正则表达式使用元字符来描述数据流中的一个或多个字符。它是由正则表达式引擎实现的。正则表达式引擎是一种底层软件,负责解释正则表达式并用这些模式进行文本匹配。

lemon9597的博客 1035
上一篇: 用户与用户组基本概念
下一篇: sed配合正则表达式应用案例
_IanXiao
博客等级 码龄12年 84粉丝 241原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值