设为首页 收藏本站
查看: 1055|回复: 0

shell脚本学习笔记之正则表达式

[复制链接]

尚未签到

发表于 2018-8-29 07:35:54 | 显示全部楼层 |阅读模式
  ***基本正则表达式(可支持grep,sed,awk等shell工具)
  * 0个或多个在*字符前面的那个普通字符
  . 匹配任意字符
  ^ 匹配行首,或后面字符是非
  $ 匹配行尾
  []匹配字符集合
  \ 转义符,屏蔽一个元字符的特殊意义
  \  精确匹配符号
  \{n\} 匹配前面字符出现n次
  \{n,\} 匹配前面字符至少出现n次
  \{n,m\} 匹配前面字符出现n~m次
  注意:符号*前面必须至少有两个字符(当符号*后面没有字符时)或必须*前面至少有一个字符(当符号*后面至少有一个字符时)才有意义
  符号.前后必须同时有字符才有意义
  []使用时前面
  1.符号*    0个或多个在*字符前面的那个普通字符
  例子  hel*o
  hel*o  可以是heo,helo,hello,helllo可以可以出现0到无穷次
  2.字符 .   匹配任意字符
  例子  .7
  .7 首先这是两个字符,其中后面一个字符是7,而前面一个字符是任意一个键盘上可以输出的字符
  ...7  这是4个字符,最后一个还是7,前面3个字符是任意一个键盘上可以输出的字符
  综合
  hel*o.  这个表示heo后面任意一个字符
  helo后面任意一个字符
  hello后面任意一个字符
  hel.*o  这个就表示以hel开头,o结尾的任意字符都可以匹配
  3.符号^    匹配行首,或后面字符是非
  例子  ^cloud
  ^cloud  这个表示行首的字符是cloud的行都会被匹配
  综合
  ^h.*o  表示必须以行首h开头以o结尾中间任意字符
  4.符号$  匹配行尾
  例子 hel$   表示必须以hel作为行尾
  综合 ^h.*o$   表示以h为行首以o为行尾中间任意字符
  ^$      表示为空
  ^hjo$    表示行首位h,行尾为o中间为j进行匹配,也就是说这                一个只有hjo才会被匹配
  5.符号[]  匹配字符集合
  例子1.穷举
  [123456789]  表示匹配任意一个数字
  例子2.-的使用(范围)
  [1-9]   表示匹配任意一个数字
  [a-z]    匹配任意一个小写字母
  [A-Z]    匹配任意一个大写字母
  [^]
  ^在[]里表示取反
  例子[^b-d]  表示匹配不在b到d之间的所有字符
  综合
  [A-Za-z] [A-Za-Z]*  匹配所有的英文单词
  [A-Za-z1-9] [A-Za-z1-9]* 匹配所有的英文单词和数字
  6.符号\      转义符,屏蔽一个元字符的特殊意义
  \* 匹配*字符,
  7.符号\   精确匹配符号
  屏蔽
  例子\  匹配the单词而不是含有the的单词或行
  8.\{\}系列符号    匹配前面字符重复出现的次数
  \{n\}           匹配前面字符出现n次
  例子
  a\{4\}   匹配aaaa
  \{n,\}       匹配前面字符至少出现n次
  例子
  a\{2,\}  匹配aa,aaa,aaaa ......
  \{n,m\}   匹配前面字符出现n~m次
  a{2,4\}  匹配aa,aaa,aaaa
  综合
  [a-z]\{5\}   匹配5个小写字母
  ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
  扩展正则表达式(支持awk,perl等工具)
  ? 匹配0个或1个在其之前的那个普通字符
  + 匹配1个或多个在其之前的那个普通字符
  () 表示一个字符集合或用在表达式中
  |  表示“或”,匹配一组可选的字符
  1.符号?
  例子
  jo?b   匹配job joob
  2.符号+
  例子
  s+eu   匹配sseu ssseu......
  3.符号() 和符号|      表示一组可选字符的集合
  例子
  re(a|e|o)d  匹配 read reed reod
  4.符号|
  re1|re2|re3...
  +++++++++++++++++++++++++++++++++++++++++++++++
  通配(支持bash shell)
  符号*  表示任意位的任意字符
  符号? 表示一个任意字符
  符号^  表示取反
  符号[] 表示字符集合
  符号[^] 表示取反字符集合
  符号{}  表示一组表达式的集合
  1.符号*
  例子 ls a*   查看所有以a开头的文件
  2.符号?
  例子
  ls a?  查看以a开头的包含2个字符的文件
  3.符号[]
  例子
  ls a[1-10] 查看a1.a2...a10
  ls a[a-z]* 查看以a开头的含有小写字母的文件
  4.符号[^]
  例子
  ls a[^1-2]  查看不含有a1,a2的所有文件
  5.符号{}
  例子
  ls a{[^1-2],a?,b*} 查看不包含a1,a2,的所有文件
  或查看文件a和aa,或查看所有以b开头的文件


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-557909-1-1.html 上篇帖子: Shell - 打包,压缩及解压缩指令汇总 下篇帖子: shell中$0,$,$!等的特殊用法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表