首页 > 代码库 > linux--grep及正则表达式(二)

linux--grep及正则表达式(二)

正则表达式有两类:

   Basic REGEXP:基本

   Extended REGEXP:扩展

基本正则表达式:

. : 任意单个字符

[]: 指定范围内的单个字符

[^]: 指定范围外的单个字符

 

次数匹配:

*:其前面的字符任意次

\?:0或1次

\{m,n\}:至少m次,至多n次

.* : 任意长度的任意字符

 

锚定:

^:行首锚定

$:行尾锚定

\<:锚定词首

\>:锚定词尾

\(\): 分组

\1,\2,\3,...

grep : 使用基本正则表达式定义的模式来过滤文本的命令

    -i: 不区分大小写

    -v:    反向匹配

    -o:只显示匹配到的字符串

    --color:匹配到的高亮显示

    -E :使用扩展正则表达式

    -A # :当某一行被grep指定的模式匹配到后,那一行不但显示,后面也显示

    -B # : 同上,不但匹配的那行显示,前面也显示

    -C # : 同上,不但匹配的那行显示,上下#行也显示

扩展正则表达式 :

字符匹配 : 

. : 匹配单个字符

[]: 指定范围内的单个字符

[^] : 指定范围外的单个字符

 

次数匹配 :

* ;其前字符任意次

? : 其前字符0或1次

+ : 匹配其前面的字符至少一次

{m,n}

 

位置锚定:

^

$

\<

\>

分组:

():分组

\1,\2,\3,...

或者

| : or

C|car : C或cat

grep -E = egrep

匹配空白字符至少一次

# grep -E ‘^[[:space:]]+‘ /etc/passwd

找出/boot/grub/grub.conf文件中1-255之间的数字;

# egrep ‘\<([1-9] | [1-9] [0-9] | 1 [0-9] [0-9] | 2 [0-4] [0-9] | 25 [0-5])\>‘ /boot/grub/grub.conf

ipv4:

五类 :

A : 1 - 127

B : 128-191

C : 192 -223

D

E

匹配ip:

 # \<([1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3])\>(\.\<([0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>){2}\.\<([1-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-4])\>

 

grep,egrep

fgrep : 不支持正则表达式

 

linux--grep及正则表达式(二)