Shell正则表达式之grep

Shell正则表达式

一、正则表达式

1、定义

正则表达式,又称正规表达式、常规表达式。
使用字符串来描述、匹配一系列符合某个规则的字符串。
正则表达式组成:
普通字符:大小写字母、数字、标点符号及一些其他符号
元字符:具有特殊意义的专用字符

2、层次

基础正则表达式
扩展正则表达式

3、基础元字符

\:转义字符,\!、\?、\n等
^:匹配字符开始的位置,^a、^the等
$:匹配字符结束的位置,word$等
.:匹配出\n之外的任意一个字符

3.1实例

goo*d  //匹配出good,god等
go.*d  //匹配出go d,中间任意任何长度的项,.*为任意长度字符

[list]:匹配list列表中的一个字符
只要是liuruizhi其中之一,都能匹配:
[root@lrz ~]# echo lrz | grep [liuruizhi]
lrz
[root@lrz ~]# echo liuruizhi1 | grep [liuruizhi]
(liuruizhi)1
[root@lrz ~]# echo liuruizhinb | grep [liuruizhi]
(liuruizhi)nb

匹配大小写:
[root@lrz ~]# echo ABC | grep [a-z]
[root@lrz ~]# echo ABC | grep [A-Z]
ABC

匹配数字字母:
[root@lrz ~]# echo ABC12 | grep [A-Z0-9]
ABC12
[root@lrz ~]# echo abc12 | grep [A-Z0-9]
(abc)12

匹配全部大小写:
[root@lrz ~]# echo abc12 | grep [A-Za-z]

匹配以....开头:
[root@lrz ~]# echo abc12 | grep ^[A-Za-z]

匹配特殊字符:
[root@lrz ~]# echo abc12 | grep [^A-Za-z]

匹配特殊字符开头:
[root@lrz ~]# echo abc12 | grep ^[^A-Za-z]

匹配前面字符最少出现1次:
[root@lrz ~]# echo abc12 | grep "ab\{1,}\c"

匹配前面字符最多出现2次:
[root@lrz ~]# echo abc12 | grep "ab\{,2}\c"

匹配前面字符出现1-3次:
[root@lrz ~]# echo abc12 | grep "ab\{1,3}\c"

3.2总结

在这里插入图片描述
注:
在这里插入图片描述

4、扩展元字符

在这里插入图片描述

4.1 实例

grep -E = egrep
匹配o一次以上:
[root@lrz ~]# echo good  gooood | grep -E "go+d"
匹配g一次以上:
[root@lrz ~]# echo ggggd ggd | egrep "g+d"
宽容匹配g d(g,d有其一就行):
[root@lrz ~]# echo   aaagd gggd ggd | grep -E "g?d"
精确匹配good:
[root@lrz ~]# echo good goodssss | grep -E "(good)"
good至少出现一次:
[root@lrz ~]# echo good goodssss | grep -E "(good)+"
.............

5、思考题

匹配出网卡配置文件中有IP地址的行:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值