8、[abc]
匹配字符集合内的任意一个字符[a-zA-Z],[0-9]。
9、[^abc]
匹配不包含^后的任意一个字符的内容。
提示:中括号里的^为取反,注意和中括号外面以…开头区别。
10、关于a、n、m、{}和\的组合
①a{n,m}
重复n到m次,前一个重复的字符。
②a{n,}
重复至少n次,前一个重复的字符。
③a{n}
重复n次,前一个重复的字符。grep 正则
④a{,m}
重复至多m次,前一个重复的字符(CentOS5不能用)。
注意:上述如果用egrep(grep -E)/sed -r可以去掉斜线,egrep或sed -r过滤一般特殊字符可以不转义(不用)。
例:
①匹配字符
grep "[abc]" oldboy.log #取含有a、b、c单个字符
grep "[^abc]" oldboy.log #取不含有a、b、c单个字符
grep "[a-z]" oldboy.log #匹配含有小写a-z字母
②匹配数字的行

grep "[0-9]" oldboy.log
③匹配非数字的行
grep "[^0-9]" oldboy.log
④匹配重复次数
grep "0{3}" oldboy.log #只匹配三次
grep "0{3,}" oldboy.log # 至少匹配三次
grep "0{3,4}" oldboy.log #匹配三到四次
grep "0{,3}" oldboy.log # 最多三次
四、扩展正则字符说明(grep -E或egrep,此处了解即可,文中的所有示例请调整别名后自行看效果)
1、+
表示重复“一个或一个以上”前面的字符(是0或多个)。
2、?
表示重复“0个或1个”前面的字符(.是有且只有1个)。
3、|
表示同时过滤多个字符。
4、()
分组过滤,后向引用。
例:
①表示重复“一个或一个以上”前面的字符(是0或多个)
grep -E "go+d" oldboy.log
grep -E "go*d" oldboy.log
②?表示重复“0个或1个”前面的字符
grep -E "go?d" oldboy.log
grep -E "go.d" oldboy.log
③ | 表示同时过滤多个字符
grep -E "3306|1521" /etc/services
grep -E "god|good" oldboy.log
④()表示分组过滤,后向引用
grep -E "g(la|oo)d" oldboy.log
五、常用的元字符说明
1、\b
单词边界
例:
grep "oldboy\b" oldboy.log
grep "\boldboy\b" oldboy.log
2、\n
换行
3、\r
回车
4、\t
横向制表符,相当于tab
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-67035-2.html
确实是非常符合心目中小王子的声音
今天才知道可口可乐的实力这么nb降了4%还能排第三
封口费给的不少