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\+$' 文件
总结图: