是什么
用于描述字符排列和匹配模式的一种语法规则。他主要用于字符串的模式分割,匹配,查找和替换。
正则表达式与通配符
通配符
- * 匹配任意内容
- ? 匹配任意一个内容
- [] 匹配括号中的一个字符
正则表达式
元字符 | 作用 |
---|---|
* | 前一个字符匹配0次或任意多次 |
. | 匹配除了换行符外的任意一个字符 |
^ | 匹配行首 |
$ | 匹配行尾 |
[] | 匹配中括号中指定的任意一个字符,只匹配一个字符 |
[^] | 匹配除中括号中的字符以外的任意一个字符 |
转义符。 | |
\{n\} | 表示其前面的字符恰好号出现n次,配合定界符使用 |
\{n,\} | 表示其前面的字符出现不少于n次 |
\{n,m\} | 表示其前面的字符至少出现n次,最多出现m次。 |
# 匹配所有内容
.*
# 匹配在s和d之间有任意字符
s.*d
# 匹配空白行
^$
# 查找不用数字开头的行
grep "^[^0-9]$" a.txt
# 查找使用.结尾的行
grep "\.$" a.txt
正则表达式与通配符
- 正则表达式用来在文件中匹配合符合条件的字符串,正则是包含匹配。grep,awk,sed等命令可以支持正则表达式。
- 通配符用来匹配符合条件的文件名,通配符时完全匹配。ls、find、cp这些命令不支持正则表达式,所以只能使用shell自己的通配符来进行匹配。