Shell脚本正则表达式(一) Linux第一人称侵入进程的好地方 Windows DOS常用命令(持续更新完善) 大数据驱动新材料研发 变革从内而发,一站式大数据平台和多模数据库雄起 雕佛像、打棒球、开飞机、去北极,这个90后程序员有点不一样 12项特色功能构建施工现场“物联网” 400亿美元!英伟达收购Arm 软银套现离场物联网梦醒 卫星物联网再次引发热议,原因在这里 信用飞:航旅行业数字化前景可期,大数据预防砍头息乱象 大数据加持自动驾驶产业发展 上海智能网联汽车公共数据中心揭牌 恒久科技(002808.SZ):子公司闽保信息与鸿达兴业签署智能制造及大数据平台综合应用项目战略合作框架协议 工业平板电脑如何在物联网中发挥作用? 400亿美元!英伟达收购Arm 软银套现离场物联网梦醒 “数字心脏”动态解析消费密码——国家级消费市场大数据联合实验 重庆:大数据智能化牵引产业结构调整质效提升 分析物联网技术在智能家居中的应用场景 国家级消费市场大数据联合实验室在上海先行先试 山西吕梁培训搬迁户成为大数据标注员 昔日贫困户,玩转高科技 知乎热议:2020年程序员是否过剩? 柯建东:宁波抢抓工业物联网新机遇,要做好四个平台建设 旷视:城市物联网的实现,是从超级应用到操作系统的沉淀过程 排障集合———忘记原密码,如何重新修改MySQL登入密码 【Redis】主从复制 网易2021批笔试题解 msf工具之木马程序制作以及伪装 【JAVA】滴滴-2021校招在线笔试-DE数据开发试卷-0913 机器学习13 -- 无监督学习之自监督 2020年全国数学建模大赛 B题部分代码和模型的建立 jumpserver安装(centos) Redis 知识点总结 通过RabitMQ实现分布式事务 高焕堂《嵌入式UML设计》读书笔记_第一章 2020年中国5G在物联网行业:中国通信运营商5G投资达1.23万亿元(可下载) 面试题精选:数据伪造 繁忙的都市(并查集、Kruskal) BFS 力扣 200.岛屿数量 深度操作系统Deepin V20正式版 2020-09-13 【OS】Bankers Algorithm 用于调用的参数太少/写入位置时发生冲突/检测到无效的异常处理程序例程 后渗透之各种维持权限的后门原理即利用 MIPS Branch Target Buffer动态分支预测(BTB) Oracle实战优化:INSERT ALL关键字的应用 Linux中MySQL数据库的使用②-----数据的基本操作 理论+实验——MySQL备份与恢复 MySQL常用数据库函数 MySQL 备份与恢复(完全备份恢复--增量备份恢复+案例演示) MySQL之基础总结部分 Oracle实战优化:递归+分析函数+OLAP函数的应用
您的位置:首页 >数据库 >

Shell脚本正则表达式(一)

Shell脚本正则表达式(一)

正则表达式概述基础正则表达式——grep,sed命令支持基础正则表达式常见元字符扩展正则表达式----egrep、awk命令支持

正则表达式概述

1.正则表达式定义 1).正则表达式,又称正规表达式、常规表达式 在代码中常简写为regex 、regexp或PE 2).是使用单个字符串来描述,匹配一系列符合某个句法规则的字符串 例:邮件服务处于过滤垃圾邮箱,最常用正则表达式 2.正则表达式组成 1).普通字符 大小写字母,数字,标点符号及一些其他符号 2).元字符 在正则表达式中具有特殊意义的专用字符

基础正则表达式——grep,sed命令支持

1.基础正则表达式示例 1).查找特定字符

命令作用-n显示行号-i不区分大小写-v反向查找

创建测试文件 [root@localhost ~]# vim test.txt

he was short and fat.He was wearing a blue polo shirt with black pants.The home of Football on BBC Sport online.the tongue is boneless but it breaks bones.12!google is the best tools for search keyword.The year ahead will test our political establishment to the liPI=3.141592653589793238462643383249901429a wood cross!Actions speak louder than words#woood ##woooooood #AxyzxyzxyzxyzCI bet this place is really spooky late at night!Misfortunes never come alone/single.I shouldn't have lett so tast.

查找the并显示行号

[root@localhost ~]# grep-n'the' test.txt

在这里插入图片描述 查找the并不区分大小写

[root@localhost ~]# grep-ni'the' test.txt

在这里插入图片描述 反向查找不包含the的行

[root@localhost ~]# grep -nv 'the' test.txt

在这里插入图片描述 2).利用中括号"[ ]"来查找集合字符

[ ]---里面无论有多少字符,都代表一个字符,为'或'的关系[^]---括号里面的'^'是取反的意思

查找包含shirt和short的行

[root@localhost ~]# grep -n 'sh[io]rt' test.txt 

在这里插入图片描述 查找重复单个字符’oo’的行

[root@localhost ~]# grep -n 'oo' test.txt 

在这里插入图片描述 查找’oo’前面不是’w’的行

[root@localhost ~]# grep -n '[^w]oo' test.txt 

在这里插入图片描述 查找’oo’前面不是小写字母的行

[root@localhost ~]# grep -n '[^a-z]oo' test.txt 

在这里插入图片描述 查找’oo’前面不是大写字母的行

[root@localhost ~]# grep -n '[^A-Z]oo' test.txt

在这里插入图片描述 查找包含数字的行

[root@localhost ~]# grep -n '[0-9]' test.txt 

在这里插入图片描述 3).查找行首’^‘与行尾字符’$' 小数点’.‘在正则表达式中为元字符,需要使用转义字符’'将其转化为普通字符 查找以小数点’.'结尾的行

[root@localhost ~]# grep -n '\.$' test.txt 

在这里插入图片描述 查找空行

[root@localhost ~]# grep -n '^$' test.txt 

在这里插入图片描述 4).查找任意一个字符用’.’,重复字符用’*' 查找以’w’开头,'d’结尾共4个字符的行

[root@localhost ~]# grep -n 'w..d' test.txt 

在这里插入图片描述 *—表示重复零个或多个前面的单字符 例:'oo*'---第一个o必须存在,第二个o可以是0个或多个,所以o,oo,ooo,等都符合规则 查询至少包含两个o以上的字符串

[root@localhost ~]# grep -n 'ooo*' test.txt 

在这里插入图片描述 查找以’w’开头,中间至少包含一个’o’的,'d’结尾的行

[root@localhost ~]# grep -n 'woo*d' test.txt 

在这里插入图片描述 查找以’w’开头,'d’结尾,中间字符可有可无的行

[root@localhost ~]# grep -n 'w.*d' test.txt 

在这里插入图片描述 查询任意数字的行

[root@localhost ~]# grep -n '[0-9][0-9]*' test.txt 

在这里插入图片描述 5).查找连续字符范围{} 使用’.‘和’*'可以设置零个或无限个重复的字符 如果要限制一个范围则使用’{}' 查看2个o的字符

[root@localhost ~]# grep -n 'o\{2\}' test.txt 

在这里插入图片描述 查看以’w’开头,'d’结尾,中间为2,5个o的字符串

[root@localhost ~]# grep -n 'wo\{2,5\}d' test.txt 

在这里插入图片描述

基础正则表达式常见元字符

元字符作用^匹配行首。$匹配行尾。.匹配任意字符\转义符,屏蔽一个元字符的特殊意义*0个或多个*字符之前的那个普通字符[]匹配字符集合[^]取反\{n,\}匹配前面字符至少出现n次\{n,m\}匹配前面字符出现n~m次

扩展正则表达式----egrep、awk命令支持

扩展正则表达式的常见元字符

元字符作用+重复一个或者一个以上的前一个字符?零个或者一个的前一个字符|零个或者一个的前一个字符()查找 “组” 字符串()+辨别多个重复的组

例如:

[root@localhost ~]# egrep -n 'wo+d' test.txt执行该命令即可查询到"wood","woood","wooooood"等字符串

在这里插入图片描述

[root@localhost ~]# egrep -n 'bes?t' test.txt执行该命令即可查询到"bet""best"这两个字符串

在这里插入图片描述

[root@localhost ~]# egrep -n 'of|is|on' test.txt执行该命令即可查询到"of",或者"is",或者"on"字符串

在这里插入图片描述

[root@localhost ~]# egrep -n 't(a|e)st' test.txt"tast"与"test"因为这两个单词的"t"与"st"是重复的,所以将"a"与"e"列入"()"符号当中,并以"|"分隔,即可查询"tast"或者"test"字符串

在这里插入图片描述

[root@localhost ~]# egrep -n 'A(xyz)+C' test.txt该命令是查询开头的"A"结尾是"C",中间有一个以上的"xyz"字符串的意识

在这里插入图片描述

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。