linux 正则表达式和通配符

Windows下用RKDevTool解包update.img的完整流程(含常见错误排查) 本文详细介绍了在Windows系统下使用RKDevTool工具解包update.img固件的完整流程。从工具准备、环境搭建到逐步解包操作,重点解析了输出文件结构,并提供了修改分区后重新打包的实战方法。文章还针对解包失败、打包错误等常见问题提供了详细的排查与解决方案,旨在帮助嵌入式开发者和爱好者高效完成固件分析与定制工作。 阅读详情

linux 正则表达式和通配符,bash shell本身不支持正则表达式,使用正则表达式的是shell命令和工具,如grep,sed,awk。

通配符用于查找文件

包含三种:  * ? []

* 代表任意个任意字符

? 代表任意一个字符

[] 代表中括号中的一个字符

 

正则表达式(正则是包含匹配,只要包含就可以匹配上,比如[0-9]可以匹配"7dfssf")

* a*表示0到n个a,这个表达没有任何含义,和 .* 意义相同

. 匹配任意一个字符 s..d 表示s和d中间含有两个任意字符的字符串

^$ 会匹配空白行

[] 与通配符中意义相同,表示中括号中间任意一个字符[0-9]代表0-9任意一个数字[a-z]

^ 在行首代表开头,如果在中括号内部代表取反[^a-zA-Z]代表包含非字母

\  转义符取消特殊符号的特殊意思 \.$ 代表一个点结尾

[0-9]\{3\} 必须连续三个数字\{1,3\}代表1次到3次


一、正则表达式:

元字符是用来阐释字符表达式意义的字符,简言之,就是用来描述字符的字符。

正则表达式RE(Regular Expression)是由一串字符和元字符构成的字符串。

正则表达式的主要功能是文本查询和字符串操作,它可以匹配文本的一个字符或字符集合。实际上正则表达式完成了数据的过滤,将不满足正则表达式定义的数据拒绝掉,剩下与正则表达式匹配的数据。

 

                        基本的正则表达式元字符集合及其意义

符号意义
*0个或多个在*字符之前的那个普通字符
.匹配任意字符
^匹配行首,或后面字符的非
$匹配行尾
[]匹配字符集合
\转义符,屏蔽一个元字符的特殊意义
\<\>精确匹配符号
\{n\}匹配前面字符出现n次  P.43
\{n,\}匹配前面字符至少出现n次
\{n,m\}匹配前面字符出现n~m次

1.“*”符号

  zha*ng  :“*”前面的普通字符是a,就表示匹配a字符0次或多次,如:zhng、zhang、zhaaaang

  (根据测试可以不包括前面的字符,即匹配0次)

2.匹配空行

  匹配行首的^和匹配行尾的$组合起来“^$”可以用来匹配空行,如果需要匹配只包含一个字符的行,可以用“^.$”

3."[]"符号

  匹配字符集合,支持穷举方法列出字符集合的所有元素,也支持使用“-”符号表示字符集合范围。

  [12345] 等价于 [1-5]

  我们知道“^”符号表示匹配行首,但是,“^”符号放到“[]”符号中就不再表示匹配行首了,而是表示取反符号。

  [^b-d]  :表示不再b~d范围内的字符

  [A-Za-z] [A-Za-z]*  :匹配任意英文单词

二、正则表达式的扩展:

                扩展的正则表达式元字符及其意义

符号意义
?匹配0个或一个在其之前的那个普通字符
+匹配一个或多个在其之前的那个普通字符
()表示一个字符集合或用在expr中
|表示“或”,匹配一组可选的字符

1.“?”符号

  (根据测试可以不包括前面的字符,即匹配0次)

2."()"符号和“|”符号

  "()"符号和“|”符号通常结合使用,表示一组可选字符的集合。

  re(a|b|c)d  等价于  re[abc]d

  "|"符号也可以表示多个正则表达式的“或”关系。

  grep -E “zha?ng|zhi”  文件

三、通配符:

bash shell本身不支持正则表达式,使用正则表达式的是shell命令和工具,如grep,sed,awk。

bash shell可以使用正则表达式中的一些元字符实现通配(Globbing)功能。

通配是把一个包含通配符的非具体文件名扩展存储在计算机,服务器或者网络上的一批具体文件名的过程。(可以看出通配主要应用匹配文件名上,而正则主要应用于字符串上)

最常用的通配符包括正则表达式元字符:?、*、[]、{}、^等。

符号意义
*任意位的任意字符
?一个任意字符
^取反

1.“{}”符号

  表示一组表达式的集合。如:{[a-h]*.awk ,a?.txt}

 

通配符 匹配项
* 匹配任意多个字符(包含0个)
? 匹配任意一个字符(不包含0个)
[characters] 匹配任意一个字符集内字符
[!characters] 匹配任意一个不属于字符集内字符
[[:class:]] 匹配任意一个字符类内字符
字符类 说明
[:alnum:] 字母集或数字集
[:alpha:] 字母集
[:digit:] 数字集
[:lower:] 小写字母集
[:upper:] 大写字母集

 条件表达式

  • 文件表达式

if [ -f  file ]    如果文件存在
if [ -d ...   ]    如果目录存在
if [ -s file  ]    如果文件存在且非空 
if [ -r file  ]    如果文件存在且可读
if [ -w file  ]    如果文件存在且可写
if [ -x file  ]    如果文件存在且可执行   

  • 整数变量表达式

if [ int1 -eq int2 ]    如果int1等于int2   
if [ int1 -ne int2 ]    如果不等于    
if [ int1 -ge int2 ]       如果>=
if [ int1 -gt int2 ]       如果>
if [ int1 -le int2 ]       如果<=
if [ int1 -lt int2 ]       如果<
   

  •    字符串变量表达式

If  [ $a = $b ]                 如果string1等于string2
                                字符串允许使用赋值号做等号
if  [ $string1 !=  $string2 ]   如果string1不等于string2       
if  [ -n $string  ]             如果string 非空(非0),返回0(true)  
if  [ -z $string  ]             如果string 为空
if  [ $sting ]                  如果string 非空,返回0 (和-n类似)    

正则元字符模式含义用例
\通常用于关闭其后续字符的特殊意义,恢复其原意。\(...\),这里的括号仅仅表示括号。
.匹配任何单个字符。a.b,将匹配abb、acb等
*匹配它之前的0-n个的单个字符。a*b,将匹配ab、aab、aaab等。
^匹配紧接着的正则表达式,在行的起始处。^ab,将匹配abc、abd等,但是不匹配cab。
$匹配紧接着的正则表达式,在行的结尾处。ab$,将匹配ab、cab等,但是不匹配abc。
[...]方括号表达式,匹配其内部任何字符。其中-表示连续字符的范围,^符号置于方括号里第一个字符则有反向的含义,即匹配不在列表内(方括号)的任何字符。如果想让]和-表示其原意,需要将其放置在方括号的首字符位置,如[]ab]或[-ab],如这两个字符同时存在,则将]放置在首字符位置,-放置在最尾部,如[]ab-]。[a-bA-Z0-9!]表示所有的大小写字母,数字和感叹号。[^abc]表示a、b、c之外的所有字符。[Tt]om,可以匹配Tom和tom。
\{n,m\}区间表达式,匹配在它前面的单个字符重复出现的次数区间,\{n\}表示重复n次;\{n,\}表示至少重复n次;\{n,m\}表示重复n到m次。ab\{2\}表示abb;ab\{2,\}表示abb、abbb等。ab\{2,4\}表示abb、abbb和abbbb。
\(...\)将圆括号之间的模式存储在特殊“保留空间”。最多可以将9个独立的子模式存储在单个模式中。匹配于子模式的文本,可以通过转义序列\1到\9,被重复使用在相同模式里。\(ab\).*\1表示ab组合出现两次,两次之间可存在任何数目的任何字符,如abcdab、abab等。
{n,m}(ERE)其功能等同于上面的\{n,m\},只是不再写\转义符了。ab+匹配ab、abbb等,但是不匹配a。
+(ERE)和前面的星号相比,+匹配的是前面正则表达式的1-n个实例。
?(ERE)匹配前面正则表达式的0个或1个。ab?仅匹配a或ab。
|(ERE)匹配于|符号前后的正则表达式。(ab|cd)匹配ab或cd。
[:alpha:]匹配字母字符。[[:alpha:]!]ab$匹配cab、dab和!ab。
[:alnum:]匹配字母和数字字符。[[:alnum:]]ab$匹配1ab、aab。
[:blank:]匹配空格(space)和Tab字符。[[:alnum:]]ab$匹配1ab、aab。
[:cntrl:]匹配控制字符。
[:digit:]匹配数字字符。
[:graph:]匹配非空格字符。
[:lower:]匹配小写字母字符。
[:upper:]匹配大写字母字符。
[:punct:]匹配标点字符。
[:space:]匹配空白(whitespace)字符。
[:xdigit:]匹配十六进制数字。
\w匹配任何字母和数字组成的字符,等同于[[:alnum:]_]
\W匹配任何非字母和数字组成的字符,等同于[^[:alnum:]_]
\<\>匹配单词的起始和结尾。\<read匹配readme,me\>匹配readme。

【数字孪生工业应用实战】第2篇:数字孪生系统架构设计与技术选型——从“作秀”到“实干”的骨架构建 本文系统剖析了数字孪生系统从“作秀”到“实干”的架构设计关键。针对多数项目在POC转生产时因架构混乱、选型盲目而失败的问题,深入阐述了四层分层架构(感知层、传输层、模型层、应用层)的设计原则,重点解析了感知层的异构适配与边缘预处理、传输层的异步解耦与多模式通信等工程细节。结合OPC UA、MQTT、EdgeX Foundry等主流技术选型对比,以及汽车焊装车间边缘智能网关的实战代码,提供了从零搭建微型孪生系统的完整指导。旨在帮助工程师建立清晰的选型决策逻辑,构建稳定、可演进的数字孪生“骨架”。 阅读详情

相关推荐

Fast DDS源代码走读

DDS, PDP, EPD, DataWriter, DataReader

weixin_43082062的博客 713

Linux 终端特殊符号含义大全

Linux 终端中有许多特殊符号,本文对常用的进行了总结: 1. `$` 表示变量/普通终端用户:用于引用变量的值/表示终端中的普通用户。 2. `#` 表示注释/超级用户:用于在脚本中注释代码/表示终端中的超级用户。 3. `/` :根目录/目录分隔符。 4. `~` :当前用户的主目录。 5. `.` :当前目录。 6. `..` :上级目录。 7. `` 输出重定向符号:将命令输出重定向到指定文件。 9. `>>` 输出追加符号:用于将用

ChenYX的博客 21万+

基于用户的协同过滤算法(userCF)

1.定义 userCF:当一个用户A需要个性化推荐时,可以先找到和他有相似兴趣的其他用户,然后把那些用户喜欢的、而用户A没有听说过的物品推荐给A。这种方法称为基于用户的协同过滤算法。 基于用户的协同过滤算法主要包括两个步骤: 2.第一步:找到和目标用户兴趣相似的用户集合。 利用行为的相似度计算兴趣的相似度。给定用户u和用户v,令N(u)表示用户u曾经有过正反馈的物品集合,令N(v)为用户v曾经有过...

jiangdongxiaobawang的博客 1万+

linux正则表达式之^

linux正则表达式之^

z19861216的博客 813

OpenWRT二级路由DHCP客户端配置:实现IPv4 WAN自动获取与网段隔离

本文详细讲解了如何将OpenWRT配置为二级路由器,重点在于设置其WAN口为DHCP客户端以自动获取IPv4地址,并修改LAN口网段实现与上级网络的隔离。文章提供了从网络拓扑规划、具体配置步骤到防火墙设置的完整指南,并分享了常见问题排查与避坑经验,帮助用户构建稳定且功能独立的家庭网络环境。

weixin_29268267的博客 293

su03t语音模块烧录识别不出问题解决方法

su03t语音sdk烧录无法识别问题

weixin_49387645的博客 6389

Linux正则符号

正则符号 ^$ : 匹配空行信息 .* : 匹配文件所有信息 [] : 匹配多个字符信息 [^] : 匹配多个字符信息进行取反 或者 -v有点不一样 正则扩展符号 + : 匹配加号前面一个字符 连续出现1次或者多次的 ? : 匹配问号前面一个字符 连续出现0次或者1次的 {} : 匹配花括号前面一个字符 连续出现指定次数 {n,m} : 匹配最少出现n次, 最多出现m次的 ......

春风吹尽叁佰里的博客 539

VLA、世界模型与端到端在智驾中的本质关系与工程落地

世界模型并非3D重建,而是对环境状态转移函数的可微分建模;VLA不是视觉+语言+动作的简单拼接,核心在于跨模态语义对齐。二者共同支撑具身智能系统实现从感知到行动的闭环推演,其技术价值体现在长尾场景泛化能力提升与决策延迟降低。在自动驾驶领域,真实量产方案均采用VLA架构作为多模态感知基础,嵌入轻量级世界模型以支持反事实轨迹推演,并通过WA硬件封装保障实时性,最终由端到端控制层完成像素到扭矩的语义贯通。这种混合架构已成L2+/L3智驾系统的工程共识。

weixin_34163553的博客 365

linux 通配符 正则表达式 区别,linux 正则表达式和通配符

linux 正则表达式和通配符通配符用于查找文件包含三种: * ? []* 代表任意个任意字符? 代表任意一个字符[] 代表中括号中的一个字符正则表达式(正则是包含匹配,只要包含就可以匹配上,比如[0-9]可以匹配"7dfssf")* a*表示0到n个a,这个表达没有任何含义,和 .* 意义相同. 匹配任意一个字符 s..d 表示s和d中间含有两个任意字符的字符串^$ 会匹配空白行[] 与通配符...

weixin_42577735的博客 1121

通达信指标加密DLL加密解密三个公式源码准确率90%以上超级指标精准买卖绝世指标

通达信指标加密DLL加密解密三个公式源码准确率90%以上超级指标精准买卖绝世指标 1 超级指标 指标公式:买卖提示非常明显(适合通达信) 指标源码如下: M:3 100 60 N 3 100 30 散户线: 100*(HHV(HIGH,M)-CLOSE)/(HHV(HIGH,M)-LLV(LOW,M));RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100; K:=SMA(RSV,5,1); D:=SMA(K,3,1); J:=3*K-2*D;主力

m0_60244077的博客 3万+

070、人脸AE实战:基于人脸检测的亮度优先与背光补偿算法

本文分享了基于人脸检测的亮度优先与背光补偿算法的实战经验。针对逆光自拍场景下人脸过曝问题,作者提出了动态平衡方案: 通过内缩20%的人脸核心区域提取亮度,避免背景干扰 创新性地采用"亮度差+置信度"的背光判定机制 设计动态权重分配策略,人脸权重可在30%-70%间调整 引入平滑处理防止亮度跳变,补偿增益限制在1.5倍以内 关键点在于:不是简单提亮人脸,而是通过分析人脸与背景亮度差,在80-110目标亮度范围内动态调整,实现自然的人脸曝光效果。算法已在实际项目中验证,解决了传统AE在逆光场景下的失效问题。

zzfmlxs的博客 33

Linux 通配符 与 正则表达式 的区别与详解

阅读目录 1 扫盲 2 通配符详细介绍 3 实例 背景:在linux使用过程中,经常需要查找文件,对命令中的通配符pattern和正则表达式的区分不是很清楚。有必要好好研究一下。 1 扫盲 1.1 通配符和正则表达式 当在使用命令行时,有很多时间都用来查找你所需要的文件,如ls find等。 S h e l l提供了一套完整的字符串模式匹配规则,或者称之为元字符,当s h e l l遇到上...

浮生若梦 4904

罗克韦尔AB PLC_FactoryTalk无法登录的解决方法

罗克韦尔AB PLC_FactoryTalk无法登录的解决方法

Robot_PLC_HMI_Automation 3575

Linux笔记之通配符和正则表达式的区别

1.Linux笔记之通配符和正则表达式的区别2.C++笔记之C语言中的换行符和转义符。

小勇博客 1449

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

Linux通配符和正则表达式

Linux通配符和正则表达式 Linux通配符和正则表达式是不一样的,通配符一般用于用户命令行bash环境,而正则表达式用于三剑客匹配 1、通配符知识:一般用户命令行bash环境,注意区别正则表达式中的含义 * --代表所有(0个或多个)字符 如:*.sh 匹配所有以 .sh 结尾的文件 ? --任意一个字符 ; --连续不同命令的分隔符 # --配置文件的注释 | --管道符 ~ --当...

weixin_42067873的博客 686

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

linux学习 5 正则表达式及通配符

linux正则表达式及通配符

bueryi的博客 1201

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

linux通配符例子,linux下的通配符与正则表达式

通配符* 任意字符,可重复多次? 任意字符,重复一次[] 代表一个字符举例: [a,b,c] 表示abc中任意一个通配符的作用是用来匹配文件名的正则表达式正则表达式是在文件中匹配符合条件的字符串的ls find cp是不支持正则表达式的但是grep awk sed支持正则表达式[[emailprotected] test]# touch aa[[emailprotected] test]# ...

weixin_31787839的博客 290

Linux基础命令-正则表达式和通配符

Linux基础命令-系统性能网络配置和相关命令一、基本网络配置 网络配置和相关命令 一、基本网络配置

qq_41596208的博客 2888

linux通配符和正则表达式

linux通配符和正则表达式 1、 通配符 通配符是shell在做PathnameExpansion时用到的。说白了一般只用于文件名匹配,它是由shell解析的,比如find,ls,cp,mv等。 1、1 Shell常见通配符: 通配符 含义 实例 匹配 0 或多个字符 a*b a与b之间可以有任意长度的任意字符, 也可以一个也没有, 如aabcb, axyzb, a012b, ab。 ? ...

qq_36608036的博客 251

Linux通配符与正则表达式

linux通配符和三剑客(grep、sed、awk)正则表达式是不一样的通配符一般是用于命令行脚本等bash环境,而linux正则表达式常用于三剑客场景 常见通配符: * - 代表所有(0到多个)字符 ? - 代表任意一个字符 ; - 两个命令之间的分隔符 # - 在配置文件里...

weixin_30617561的博客 72

linux之通配符和正则表达式

在查看别人所写的资料基础上,归纳整理了linux里的通配符,正则表达式及扩展正则表达式的知识

狂暴的兔子 827

linux 通配符 正则表达式 区别,linux下的通配符与正则表达式

linux下主要通配符与特殊字符如下:* 代表0个或多个字符(或数字)? 代表一个字母 ---- 数字不可以吗? 可以# 注释,常用在脚本中转义字符,将特殊字符或者通配符还原成一般字符| 分隔两个管道; 连续命令分隔~ 用户的家目录$ 变量之前需要加的,变量替换值& ...

weixin_34124963的博客 347

linux通配符和正则表达式的区别总结

目录 通配符和正则表达式的区别 Linux中的通配符 通配符和正则表达式的区别 在看鸟哥的Linux私房菜的时候看到十二章一直强调通配符和正则表达式的区别,在我的理解中,两者貌似是一样的都是用来匹配的。Google之网上给出的答案是: 在文本过滤工具里,都是用正则表达式,比如像awk,sed,等,是针对文件的内容的 而通配符多用在文件名上,比如查找find,ls,cp,等等 下表是鸟哥给的Linux下的通配符 符號 內容 * 萬用字元,代表 0 個或多個字元(或數字) ?

专注自动化、性能测试、测试架构学习交流 904

linux中利用通配符显示内容,linux中的通配符和正则表达式

总结:通配符,即globbing,多用于文件名上,如ls,tar,find等命令正则表达式,则主要针对文件内容,如grep,awk,sed等命令通配符:当查找文件时,可以使用通配符来代替一个或多个真正字符;当不知道真正字符或者懒得输入完整名字时,也可以使用通配符。例如:当你查看当前目录下所有以virtual开头的目录时 用*可以代替之后的所有字符。再如:当你想删去当前目录下所有file开头的文件时...

weixin_39783360的博客 224
上一篇: Shell脚本8种字符串截取方法总结
下一篇: shell——tr的用法
thy822
博客等级 码龄19年 313粉丝 294原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值