正则表达式与通配符
正则表达式用来在文件中匹配符合条件的字符串,正则是包含匹配,grep,awk,sed等命令可以支持正则表达式
通配符用来匹配符合条件的文件名,通配符是完全佩佩,ls,find,cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配
正则表达式元字符含义
元字符 | 作用 |
---|---|
* | 前一个字符匹配0次或任意多次 |
. | 匹配除了换行符外任意一个字符 |
^ | 匹配行首 |
$ | 匹配行尾 |
[] | 匹配括号中指定的任意一个字符,只匹配一个字符 |
[^] | 匹配除中括号的字符以外的任意一个字符 |
|转义符,用于将特殊字符的含义取消 | |
{n} | 表示其前面的字符恰好出现n次 |
{n,} | 表示其前面的字符出现不少于n次 |
{m,n} | 表示其前面的字符至少出现n次,最多出现m次 |
* 前一个字符匹配0次,或者任意多次
# 匹配所有内容,包括空白行
grep "a*" testreg.txt
#匹配至少包含有一个a的行
grep "aa*" testreg.txt
. 匹配除了换行符外任意一个字符
#匹配在a和e之间有两个字符的行
grep "a..e" testreg.txt
#匹配所有内容
grep ".*" testreg.txt
^匹配行首,$匹配行尾
#匹配以a开头的行
grep "^a" testreg.txt
#匹配以w结尾的行
grep "w$" testreg.txt
#匹配空白行
grep "^$" testreg.txt
\ 转义符
#匹配以.结尾的行
grep "\.$" testreg.txt