linux正则表达式

字符

范围内字符单个字符:  [ ] [a-z]

反向字符^:  [^ 0-9]不是数字

任意字符:' . '

头尾字符: ^ $, ^root //注意与[^]区别,空行表示^$

元字符和重复设定:

 

 

字符组合

任意字符串的表示: . *

.代表任意一个字符,*代表多个字符,正则表达式就是最大的范围,这需要按照自己的想要的结果去加条件变小范围。

逻辑表示

| 逻辑或

grep 'bin/\(false\|true\)' passwd

例子:

在passwd文件中匹配2-3位数字

这里面含有数字[0-9],重复{,},分隔符/b /b

案例2:

匹配15位或18位身份证号(支持带X的)

因为身份证号首位不能为0,最后一位可以带有X的,中间就有13-16位重复,^$代表首和尾

grep '^[1-9]\([0-9]\{13\}|[0-9]\{16\}\)[0-9xX]$'  文件

案例3:

匹配密码(由字母,数字,下划线组成)

grep ' ^\w\+$'  文件

总结图:

 

posted @ 2017-06-26 17:56  狼太白  阅读(339)  评论(0编辑  收藏  举报