RHEL 7 (134) 正则表达式中的GREP

通配符
在shell 当中用某些符号来表示一类字符,
 ?表示一个任意字符
 * 表示任意多个的任意字符
[] 表示中括号中的任意一个字符
!或者 ^ 表示非  [!0-9]和[^0-9]都表示非数字
\ 释意符,后边跟一个通配符,就会将此通配符当成正常符号,而不是通配符 
[[:upper:]] 大写字母
[[:lower:]] 小写字母
[[:alpha:]] 字母(不区分大小写)
[[:alnum:]] 字母和数字
[[:digit:]] 纯数字


通配符中 . 没有特殊含义,就是个.




正则表达式


grep ‘关键字’ file




以下两种是以行为单位的
^ 表示以后边那个字符为行头的   
$ 表示以前边那个字符为行尾的


以下两种这种是以连续性单词为单位的


'\<tom' 表示以tom这个单词为开头的单词


'tom\>'表示以tom这个单词为结尾的单词
'\<tom\>' 表示tom 这个单词




关键字可以用正则表达式来表示
‘^root’表示以r为行头的内容
‘sh$’表示以h为行尾的内容


.  相当于通配符中的? 表示任意一个字符
?表示前边的字符要不没有,要不 出现1一次,就是可有可无的意思
+ 表示前边的字符至少出现一次
* 表示前边的字符出现任意次


.* 表示任意一个字符都可以任意出现或不出现,也不限定出现次数,即表示通配符中的*


grep 并不支持所有的元字符
egrep = grep -E  表示支持扩展的元字符。能支持更多的字符
grep -p 对poor中的元字符支持,也能支持更多的元字符


{n} 表示前边的字符出现n次以上的筛选出来 




贪婪匹配和懒惰匹配
tom+  这是一种贪婪匹配
比如 tommmmmm 这个单词被删选出来的时候是吧m匹配到底,有多少个m就匹配多少次。然后再显示出来


tom+?  这是懒惰匹配
当筛选 tommmmmm 的时候,筛选到第一个m的时候,一看合适,后边就不继续匹配了,直接把这个单词显示出来。




作业: 如何使用正则表达式表示一个ip地址,
不能包含子网掩码广播地址环回地址等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值