关于正则表达式第四篇

简介: 正则表达式,林林总总说了几篇,还是有不少的内容需要补充。 -->星号 字符出现0次或者多次 $ echo "ik"|sed -n '/e*/p' ik $ echo "ieek"|sed -n '/e*/p' ieek $ echo "This is a color TV"|sed -n '/colou*r/p'  --colour中的u可以出现0次或者多次。

正则表达式,林林总总说了几篇,还是有不少的内容需要补充。
-->星号
字符出现0次或者多次
$ echo "ik"|sed -n '/e*/p'
ik
$ echo "ieek"|sed -n '/e*/p'
ieek
$ echo "This is a color TV"|sed -n '/colou*r/p'  --colour中的u可以出现0次或者多次。出现0次的时候color就符合条件
This is a color TV
$ echo "This is a colour TV"|sed -n '/colou*r/p'   --colour中的u可以出现0次或者多次。出现1次的时候colour就符合条件
This is a colour TV

-->星号+点字符
星号和点字符的结合

$ echo "This is a nice hat"|sed -n '/a.*hat/p' 
This is a nice hat

-->星号+字符组
$ cat c.txt
bt
bat
bet
btt
batt
baaeeat
bakeat
$ sed -n '/b[ae]*t/p' c.txt
bt
bat
bet
btt
batt
baaeeat

扩展表达式有以下几种,在linux中对于grep,awk都是支持的。
问号
花括号
管道符号
聚合表达式

-->问号
字符出现0次或者1次
$ cat c.txt
bt
bat
bet
btt
batt
baaeeat
bakeat


$ sed -n '/b[ae]*t/p' c.txt
bt
bat
bet
btt
batt
Baaeeat
$ awk '/b[ae]?t/{print $0}' c.txt  --匹配0次或者1次的时候,Baaeeat 怎么也匹配不到[ae]相关的组合。
bt
bat
bet
btt
batt

-->加号
字符出现1次或者多次,这个和问号有些类似。但是对于出现的频率会有不同。问号是0次或者一次,星号是0次或者多次。
$ awk '/b[ae]+t/{print $0}' c.txt
bat
bet
batt
baaeeat

-->花括号
m     正则表达式准确出现m次
m,n 正则表达式至少出现m次,至多n次
默认awk不会识别正则表达式区间,需要指定--re-interval  选项

$ echo "bat"|awk '/b[ae]{1}t/{print $0}'
echo "bat"|awk --re-interval '/b[ae]{1}t/{print $0}'
 bat

$ cat c.txt
bt
bat
bet
btt
batt
baaeeat
bakeat
$ awk --re-interval '/b[ae]{1,2}t/{print $0}' c.txt
bat
bet
batt


$ cat d.txt
the cat is asleep
the dog is asleep
the sheep is asleep
$ awk '/cat|dog/{print $0}' d.txt
the cat is asleep
the dog is asleep

-->聚合表达式
$ echo "Sat"|awk '/Sat(urday)?$/{print $0}'
Sat
$ echo "Satx"|awk '/Sat(urday)?$/{print $0}'
$ echo "Saturday"|awk '/Sat(urday)?$/{print $0}'
Saturday
$ echo "Saturdayurday"|awk '/Sat(urday)?$/{print $0}'
 $ echo "cat"|awk '/(c|b)a(b|t)/{print $0}'
cat
 $ echo "tab"|awk '/(c|b)a(b|t)/{print $0}‘
 $ echo "tac"|awk '/(c|b)a(b|t)/{print $0}'

目录
相关文章
|
8月前
|
Ubuntu 安全 Linux
ubuntu2404 Server扩展PV
通过以上步骤,你可以成功扩展Ubuntu 24.04 Server上的物理卷。该过程包括创建新分区、将其添加到现有PV、扩展逻辑卷和相应的文件系统。扩展完成后,服务器将能够使用新增的存储空间,确保系统运行更加高效和稳定。
344 77
|
弹性计算 容灾 安全
阿里云服务器如何购买?三种方式可买(图文举例流程)
阿里云服务器如何购买?三种方式可买(图文举例流程)2023阿里云服务器购买流程更新,选购云服务器有两个入口,一个是选择活动机,只需要选择云服务器地域、系统、带宽即可;另一个是在云服务器页面,自定义选择云服务器配置,这种方式购买云服务器较为复杂,需要选付费方式、地域及可用区、ECS实例规格、镜像、网络、公网IP、安全组等配置,阿里云百科来阿里云服务器购买流程指南2023新版教程:
531 0
阿里云服务器如何购买?三种方式可买(图文举例流程)
|
机器学习/深度学习 数据采集 人工智能
|
机器学习/深度学习 数据采集 存储
一文读懂机器学习分类全流程
🏆在本文中,作者将带你了解机器学习分类的全流程,从问题分析>数据预处理>分类器选择>模型构建>精度评价>模型发布为Web应用。从0带读者入门机器学习分类。
1252 0
|
Ubuntu
更换apt-get源 与 更换pip源
更换apt-get源 与 更换pip源
815 0
|
达摩院 计算机视觉
给语言大模型加上综合视听能力,达摩院开源Video-LLaMA
给语言大模型加上综合视听能力,达摩院开源Video-LLaMA
674 0
|
网络协议 Linux Shell
Linux criu
Linux criu
920 0
|
JSON 安全 数据安全/隐私保护
【墙裂推荐】Token的生成和校验
【墙裂推荐】Token的生成和校验
1674 0