正则:
.正则就是一串有规律的字符串
.正则对编写shell脚本有很大帮助
.各种编程语言中都有正则
正则工具:grep/egrep(egrep是grep的扩展)、sed、awk
grep (过滤关键词)
格式: grep [-cinvABC] 'word' filename
(1)-c 行数
(2)-i 不区分大小写
(3)-n 显示行号
(4)-v 取反(过滤出不是关键字外的行)
(5)-r 遍历所有子目录
(6)-A 后面跟数字n,过滤出符合要求的行以及下面n行
(7)-B 后面跟数字n,过滤出符合要求的行以及上面n行
(8)-C 后面跟数字n,同时过滤出符合要求的行以及上下各n行
例子 grep正则表达式
no1: grep '[0-9]' passwd
[]里的数字0-9表示0-9之间有一个数字,不理数字是有几个都过滤出,即过滤所有带数字的行
no2: grep -v '[0-9]' /etc/inittab
(过滤出不带数字的行)
no3: grep -nv '^#' inittab
(过滤出不以#开头的行,“^”开头符)
no4 :grep '[^a-zA-Z]' inittab
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的次数幂)在要在转义符号“\”)
grep -n 'o\{0,3\}' passwd
不带转义符号“\”的写法
egrep -n 'o{2}' passwd
grep -En 'o{2}' passwd
grep -En '(oo){2}' passwd
no8 :grep -n 'o\+b' passwd
("+"表示+前面字符一次或多次,而*是零次或多次)
no9 :egrep -n 'o?t' passwd
grep -En 'o?t' passwd
grep -n 'o\?t' passwd
(?表示问号前面字符零次或者一次)
no10 :grep -En 'root|nologin' passwd
(|表示或者)
在grep命令中有特殊符号的时候
(1)使用转义符号
(2)-E
(3)使用egrep
原文地址:http://blog.51cto.com/13589255/2072491