文本處理命令系列——grep的擴展用法

正則表達式分爲基本的正則表達式和擴展的正則表達式。

通常情況下,grep使用的是基本的正則表達式,如果要使用擴展的正則表達式,可以用-E選項,等同於egrep

grep的其他一些選項:

-A n:顯示匹配行後面的n行,(after)。

-B n:顯示匹配行前面的n行,(before)。

-C n:顯示前後各n行。(context)

示例1:

[root@Server3 tmp]# grep --color -A 1 '^cpu MHz' /proc/cpuinfo
cpu MHz         : 2392.390
cache size      : 3072 KB
[root@Server3 tmp]#

[root@Server3 tmp]# grep --color -A 1 -B 2 '^cpu MHz' /proc/cpuinfo
model name      : Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz
stepping        : 7
cpu MHz         : 2392.390
cache size      : 3072 KB
[root@Server3 tmp]#
[root@Server3 tmp]# grep --color -C 2 '^cpu MHz' /proc/cpuinfo
model name      : Intel(R) Core(TM) i3-2370M CPU @ 2.40GHz
stepping        : 7
cpu MHz         : 2392.390
cache size      : 3072 KB
fpu : yes
[root@Server3 tmp]#


擴展的正則表達式:

在擴展的正則表示式裏面所使用的元字符和基本的正則表達式裏面的元字符基本上都相同,區別主要有一下幾個:

+:匹配前一個字符出現1次或多次。

{n,m}:前一個字符出現n到m次。

|:表示或。如a|b,則表示的是匹配a或b。

():表示分組,不需要使用反斜線。


[root@Server3 tmp]# grep -E '(C|c)at' aa
cat
Cat
[root@Server3 tmp]#


匹配1-255之間的數:

grep -E --color '\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b'


[root@Server3 ~]# ifconfig bond0 | grep 'inet addr' | grep -E --color -o '(\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.\b){3}\b([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\b'
172.17.100.252
172.17.100.255
255.255.255.0
[root@Server3 ~]#



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章