grep常见应用实例

 

在我们实际应用中,正则表达式的应用是非常广泛的,今天我就大家分享几个比较常见的正则表达式的应用实例,不周之处,还望高人多多指点!

 

一:使用正则表达式搜索邮箱地址

二:使用正则表达式搜索手机号

三:使用正则表达式搜索身份证号

四:使用正则表达式取网络配置文件中的IP地址的过程解析

 

一:使用正则表达式搜索邮箱地址:

[root@centos7 test]# cat mail

183530300@qq.com

netadmin@126.com

all-user@vip.qq.com

love_you@51cto.com

linuxedu@foxmail.com.cn

love-fire@vip.sina.com

love@vip.yahoo.com

This is a mailbox address table [root@centos7 test]# egrep "\<([[:alnum:]]+(-|_)*[[:alnum:]]*)\>@([[:lower:]]|[[:digit:]])+\.[[:lower:]]*(\.[[:lower:]]+)*" mail

183530300@qq.com

netadmin@126.com

all-user@vip.qq.com

love_you@51cto.com

linuxedu@foxmail.com.cn

love-fire@vip.sina.com

love@vip.yahoo.com

This is a mailbox address table 
qq_12345@qq.com
  
-NB74110@qq.com

wKioL1ekq4DhDmMcAAB_oEMww2g684.png

二:使用正则表达式搜索手机号:

[root@centos7 test]# cat tel

12812345678

a13012345678

b13112345678

c13212345678

1331234567890

13312345678

13412345678

13512345678

13612345678

13712345678

13812345678

13912345678

14012345678

14712345678

15012345678

15112345678

15212345678

15312345678

15412345678

15512345678

15612345678

15712345678

15812345678

15912345678

16012345678

17012345678

17712345678

17812345678

18012345678

18112345678

18212345678

18312345678

18412345678

18512345678

18612345678

18712345678

18812345678

abc1891234567890def

19012345678

[root@centos7 test]# egrep "\<13[0-9]{9}|147[0-9]{8}|15([0-3]|[5-9])[0-9]{8}|17[0,7][0-9]{8}|18([0-3]|[5-9])[0-9]{8}\>" tel

搜索结果如图所示wKioL1ekq6WxyoO_AACPMayo1zA106.png

三:使用正则表达式搜索身份证号:

[root@centos7 test]# cat id

123456789876543210

130626199010016512def

130626199010016512

abc130626199010016512

160626199010016512

200626199010016515

220626199010016515

240626199010016515

30062619901001651X

32062619901001651X

38062619901001651X

402062620080808100

420626198002023518

42062619901001651X

462062620080808100

472062620080808100

500626199010016517

522122199808081671

520626199010016517

550626199010016517

560626199010016517

600626199010016519

650626199010016519

660626199010016519

70162619900231651X

71162619901001651X

720626199010016510

800626199010016511

987654328765432165

810626199002316511

810626201800016511

820626199010016511

820626101013326511

830626100100165119

584721520131499999

[root@centos7 test]# egrep "\<((1[1-5])|(2[1-3])|(3[1-7])|(4[1-6])|(5[0-4])|(6[1-5])|(71|81|82))([0-9]){4}(19|20)([0-9]){2}((0[1-9])|(1[0-2]))(0[1-9]|([0-9])|(2[0-9])|(3[0-1]))([0-9]){3}([0-9]|X)\>" id
  
130626199010016512

220626199010016515

32062619901001651X

420626198002023518

42062619901001651X

500626199010016517

522122199808081671

520626199010016517

650626199010016519

71162619901001651X

810626199002316511

820626199010016511

wKiom1elRhqTFUSNAABXMPOMfsk095.png

四:使用正则表达式取网络配置文件中的IP地址的过程解析:

取四段中的第一段

[root@centos7 test]# egrep "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>." /etc/sysconfig/network-scripts/ifcfg-eno16777728

IPADDR=10.1.254.254 
GATEWAY=10.1.0.1
DNS1=202.106.0.20

 取四段中的第二段

[root@centos7 test]# egrep "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>.(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.)" /etc/sysconfig/network-scripts/ifcfg-eno16777728

IPADDR=10.1.254.254
GATEWAY=10.1.0.1
DNS1=202.106.0.20

 取四段中的第三段

[root@centos7 test]# egrep "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>.(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){2}" /etc/sysconfig/network-scripts/ifcfg-eno16777728

IPADDR=10.1.254.254
GATEWAY=10.1.0.1
DNS1=202.106.0.20

 取四段中的第四段

[root@centos7 test]# egrep "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>.(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){2}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>" /etc/sysconfig/network-scripts/ifcfg-eno16777728 
 
IPADDR=10.1.254.254
GATEWAY=10.1.0.1
DNS1=202.106.0.20

只显示IP地址

[root@centos7 test]# egrep -o "\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-1][0-9]|22[0-3])\>.(\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\>\.){2}\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>" /etc/sysconfig/network-scripts/ifcfg-eno16777728
  
10.1.254.254
10.1.0.1
202.106.0.20

wKioL1ekJZzS12d7AACxvie2GK0469.png

本文出自 “爱情防火墙” 的博客,请务必保留此出处:http://www.178linux.com/author/lovefirewall

原创文章,作者:爱情防火墙,如若转载,请注明出处:http://www.178linux.com/29995

(1)
爱情防火墙爱情防火墙
上一篇 2016-08-08 16:16
下一篇 2016-08-08 16:16

相关推荐

  • bash功能特性五 重定向和管道

    一、管道     使用“|”符号来实现管道功能;管道可以实现在一行中处理使用管道符号连接的多个命令,后面的命令使用前面命令的输出结果做为处理对象。 二、数据流重定向     数据输入和输出的类型:         标准输入(std…

    Linux干货 2015-04-21
  • yum前端软件包管理器

    yum是什么     Yum (Yellow dog Updater, Modified) 由Duke University团队,修改Yellow Dog Linux的Yellow Dog Updater开发而成,是一个基于 RPM 包管理的字符前端软件包管理器。能够从指定的服务器自动下载…

    Linux干货 2015-05-13
  • 精解局域网访问及共享(三)

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/155109    上一节中的2种情况都是默认的简单共享,下面我们着重分析一下高级共享方式下的各种访问情况。毕竟这种方式用的很普遍,而且在权限…

    Linux干货 2015-03-25
  • 运维挖坑埋坑之旅—-413 Request Entity Too Large

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://nolinux.blog.51cto.com/4824967/1575160        好久没写博文了,天天忙的喘不过来气。最近是该总结总结前段时间的工作了,顺便缓解下这两天的霉…

    Linux干货 2016-08-15
  • 浅析linux软、硬链接

    软链接 硬链接 不同点 创建时会占用新的inode号, 不会占用 可以跨分区 不可以跨分区 与源文件是两个不同的文件,不会增加文件链接数 与源文件数据相同,会增加文件链接数 依赖于链接的文件名,当删除或移动源文件后,连接可能失效 不依赖于源文件名,删除或移动源文件后,硬链接依然使用 对文件,目录都可以执行链接操作 只能对文件执行链接操作 大小为指向源文件路径…

    Linux干货 2016-12-05
  • Linux iptables配置应用

                    Linux iptables配置应用 概述:    Linux的防火墙体系主要工作在网络层,只对tcp/ip数据包实施过滤和限制,属于典型的包过滤防火墙(或称为网络层防火墙)。Linux的防火墙体系基于内核编码实现,因…

    系统运维 2016-11-18