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.www58058.com/author/lovefirewall

原創文章,作者:愛情防火墻,如若轉載,請注明出處:http://www.www58058.com/29995

(1)
愛情防火墻愛情防火墻
上一篇 2016-08-08 16:16
下一篇 2016-08-08 16:16

相關推薦

  • 程序員小抄大全

    你是否會經常忘記一些CSS中的函數名或是一些屬性名,那個時候,你一定覺得,如果手邊有一個“小抄”(Cheat Sheet)就好了。當然,這個“小抄”不是給你作弊用的,這個“小紙條”就是可以讓你馬上知道那個你最想知道的東西。這個“小抄”上也不需要有所有的東西,就需要那些經常用的就行了。現在,網上有很多這樣的“小抄”,它們可能是PDF格式的,可能是PNG格式的,…

    Linux干貨 2015-04-03
  • 搜索引擎-倒排索引基礎知識

    1.單詞——文檔矩陣        單詞-文檔矩陣是表達兩者之間所具有的一種包含關系的概念模型,圖3-1展示了其含義。圖3-1的每列代表一個文檔,每行代表一個單詞,打對勾的位置代表包含關系。          …

    Linux干貨 2015-12-10
  • 淺談netbios及其相關內容

    原創作品,允許轉載,轉載時請務必以超鏈接形式標明文章 原始出處 、作者信息和本聲明。否則將追究法律責任。http://jeffyyko.blog.51cto.com/28563/141086        Netbios想必大家都有接觸。對于netbios的理解,我以前…

    Linux干貨 2015-03-26
  • ftp服務器介紹與配置

    一、 ftp服務,File Transfer Protocal 文件傳輸協議      1. ftp基于tcp協議,C/S架構          Server: wu-ftpd, proftpd ,pureftp,vsf…

    Linux干貨 2015-06-21
  • DNS服務器之理論基礎

    一、什么是DNS     DNS全稱為Domain Name System,即域名系統,其作用就是將我們經常使用的“網址”解析為IP地址。     在互聯網上通信需要借助于IP地址,但人類對于數字的記憶能力遠不如文字,那么將IP地址轉換成容易記憶的文字是個好辦法,可是計算機只能識…

    Linux干貨 2015-04-29
  • 系統基礎之用戶,組及權限管理

    用戶及組詳解 概論:   現今,大多數操作系統都是多用戶(Multi-tasks)多任務(Mulit-Users)的系統.在多年前,計算機資源遠沒有現在這么豐富,都是多人使用同一臺計算機,為了保障使用計算機的用戶權益不受到損害,完成資源使用隔離,人們采取了用戶機制標識使用者的方法.  每個使用者都是用戶,用戶是由UID進行標識,通過密碼進…

    Linux干貨 2016-08-04
欧美性久久久久