您的位置:首页 > 其它

正则 :grep 工具的正则表达式

2018-02-23 22:45 369 查看
正则:


.正则就是一串有规律的字符串
.正则对编写shell脚本有很大帮助
.各种编程语言中都有正则
正则工具:grep/egrep(egrep是grep的扩展)、sed、awk

[b]grep (过滤关键词)[/b]
[b]

[/b]

格式: grep [-cinvABC] 'word' filename
[b](1)-c 行数 [/b]




[b](2)-i 不区分大小写[/b]



[b](3)-n 显示行号[/b]



[b](4)-v 取反(过滤出不是关键字外的行)[/b]



[b](5)-r 遍历所有子目录[/b]
[b](6)-A 后面跟数字n,过滤出符合要求的行以及下面n行[/b]



[b](7)-B 后面跟数字n,过滤出符合要求的行以及上面n行[/b]



[b](8)-C 后面跟数字n,同时过滤出符合要求的行以及上下各n行[/b]




例子 grep正则表达式
[b]no1: grep '[0-9]' passwd [/b]
[b][]里的数字0-9表示0-9之间有一个数字,不理数字是有几个都过滤出,即过滤所有带数字的行[/b]
[b]

[/b]
[b][b]no2: grep -v '[0-9]' /etc/inittab[/b][/b]
[b][b](过滤出不带数字的行)[/b][/b]
[b][b]

[/b][/b]

no3: grep -nv '^#' inittab
(过滤出不以#开头的行,“^”开头符



no4 :[b]grep '[^a-zA-Z]' inittab[/b]
grep '^[^a-zA-Z]' inittab ->过滤出不是以字母开头的行,即过滤出以数字开头的行
(当“^”放在了[]里后,它的意思就是“非”)




no5 :grep 'r.o' passwd
(这里的“.”代表任意一个字符)




no6 :grep -n 'o*o' passwd
(*:代表*前面字符零个或多个,o*:一个o或者多个o)



no7 : grep -n '.*' passwd
(表示过滤所有,“.*”表示所有)




no7 :grep -n 'o\{2\}' passwd
({}表示前面符号重复范围,’o\{2\}’表示o出现两次(或者2的次数幂)在要在转义符号“\”)



[b]grep -n 'o\{0,3\}' passwd[/b]
[b]不带[b]转义符号“\”的写法[/b][/b]
egrep -n 'o{2}' passwd
[b]grep -En 'o{2}' passwd[/b]
[b][b][b]grep -En '(oo){2}' passwd[/b][/b][/b]
[b][/b]
[b][/b]
no8 :[b][b]grep -n 'o\+b' passwd[/b][/b]
[b][b]("+"表示+前面字符一次或多次,而*是零次或多次)[/b][/b]




no9 :egrep -n 'o?t' passwd
[b] grep -En 'o?t' passwd[/b]
[b][b] grep -n 'o\?t' passwd[/b][/b]
(?表示问号前面字符零次或者一次)



no10 :grep -En 'root|nologin' passwd
(|表示或者)




在grep命令中有特殊符号的时候
(1)使用转义符号
(2)-E
(3)使用egrep
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  grep 表达式