1、正则表达式和通配符的区别
通配符是查找文件名,完全匹配。如find
正则表达式是查找文件内容,包含匹配。如grep、awk、sed
2、基础正则表达式
* 匹配*之前的字符零个或任意多个
grep "a*" filename 表示匹配所有
grep "aa*" filename 表示至少匹配一个a
. 匹配除换行符之外的任意一个字符
grep ".*" 匹配所有
[ ] 匹配方括号中的任意一个字符,只匹配一个
grep "[ab]" filename 表示匹配a或者b
grep "[a-z]" filename 表示匹配小写字母
^ 匹配行首
grep "^a" filename 匹配以a开头的行
$ 匹配行尾
grep "n$" filename 匹配以n结尾的行
[^] 匹配除中括号字符以外的所有字符
grep "^[a-z]" filename 匹配小写字母开头的行
grep "^[^a-z]" filename 匹配不以小写字母开头的行
grep "^[^a-zA-Z0-9]" filename 匹配不以字母和数字开头的行
\{n\} 前面的字符出现n次(至少)
grep "a\{3\}" filename a至少出现3次
\{n,m\} 前面的字符至少出现n次,最多出现m次
grep "a\{1,3\}" a至少出现1次,最多出现3次
转义字符"\":表示字符的原始意义
grep "\*" 匹配*