在shell中经常见到正则表达式的影子,正则表达式涉及的范围极广,这里简单了解一下常用的基本元字符集。
一、基本元字符集如下:
符号 | 含义 |
---|---|
^ | 只匹配行首 |
$ | 只匹配行尾 |
* | 只一个单字符后紧跟*,匹配0个或多个此单字符 |
[ ] | 只匹配[ ]内字符。可以是一个单字符,也可以是字符序列。可以使用-表示[ ]内字符序列范围,如用[1-5]代替[12345] |
\ | 只用来屏蔽一个元字符的特殊含义。因为有时在shell中一些元字符有特殊含义。\可以使其失去应有意义 |
. | 只匹配任意单字符 |
pattern\{n\} | 只用来匹配前面pattern\出现次数。n为次数 |
pattern\\{n,\}m | 含义同上,但次数最少为n |
pattern\\{n,m\} | 含义同上,但pattern\出现次数在n与m之间 |
二、例子
1、显示该目录下所有的文件
ls -l | grep ^d
2、显示该目录下所有以s结尾的文件或目录
ls -l | grep s$
3、匹配任意一个数字
[123456789]
4、匹配带.的文件名
ls -l *\.hdx 如a.hdx ; ab.hdx
5、匹配字母A出现两次,并以B结尾
A{2}B -> A\{2\}B
6、匹配字母A至少出现两次,并以B结尾
A{2,}B -> A\{2,\}B
7、匹配字母A出现2至6次,并以B结尾
A{2,6}B -> A\{2,6\}B