当前位置:首页 > 操作系统 > Linux

linux基础篇-12,grep正则表达式与扩展正则表达式

################################################

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


grep 

  -i :不区分大小写

  --color

  -v:显示没被匹配的任意行

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

  -E 扩展的正是表达式 =egerp

  -A#:#为数字

  -B#:

  -C#:


[root@Jameszhan testcp]# grep -o ‘root‘ /etc/passwd --color

root

root

root

root


元字符:

.:匹配任意单个字符

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

[^]:匹配指定范围外的任意单个字符


匹配次数:

*:匹配前面的字符任意次

.*:匹配任意字符串

? 匹配前面的字符1次或0次

{m,n}:匹配前面字符m-n次


位置锚地

^:锚定行首

<或b:锚定词首 后面的任意字符必须作为单词首部出现 

<root


$:锚定行尾

>或b:锚定词尾 前面的任意字符作为单词出现在尾部

root>


(abc) 作为内容出现和扩展正则表达式雷同

支持后向引用


################################################


扩展的正则表达式:REGular expression regexp


元字符:

.:匹配任意单个字符

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

[^]:匹配指定范围外的任意单个字符

匹配次数:

*:匹配前面的字符任意次

.*:匹配任意字符

? 匹配前面的字符1次或0次

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

{m,n}:匹配前面字符


[root@Jameszhan ~]# cat /tmp/t.txt

it is open no opening


###########


位置锚地

^:锚定行首


###########


$:锚定行尾


###########


^$:空白行


###########


<或b:锚定词首 后面的任意字符必须作为单词首部出现 

<root


###########


>或b:锚定词尾 前面的任意字符作为单词出现在尾部

root>


###########


(ab)* 分组(一般作为单词出现时用括号扩起来)


[root@Jameszhan ~]# grep ‘(abc)*‘  -E --color /tmp/t.txt

ab

abc

aab

aaac


支持后向引用 1,2


[root@Jameszhan ~]# grep -E ‘(open).*1‘ /tmp/t.txt  --color

it is open no opening


###########


|:或or


用整整表达式写出 1-255

<[1-9]|[1-9][0-9]|1[0-9][0-99]|2[0-4][0-9]|25[0-5]>


筛选出网卡配置文件内的0-255之间的数字

ifconfig | grep -E ‘(<[0-9]|[1-9][0-9]|1[0-9][0-99]|2[0-4][0-9]|25[0-5]>)‘ --color


[root@Jameszhan ~]# cat /etc/passwd  | grep ‘nologin>‘ --color

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

uucp:x:10:14:uucp:/var/spool/uucp:/sbin/nologin


本文出自 “James zhan Linux高级运维” 博客,请务必保留此出处http://jameszhan.blog.51cto.com/10980469/1875541

原文:http://jameszhan.blog.51cto.com/10980469/1875541


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!

相关教程推荐

其他课程推荐