1) shell元字符与正则表达式元字符比较
shell元字符(通配符):由shell解析,如rm -rf *.txt,元字符* 由shell将其解析为任意多个字符
正则表达式元字符 :由各种执行模式匹配操作的程序来解析,比如vi,grep,sed,awk
2)基本元字符
^ 行首定位符
$ 行尾定位符 ^$:空行
. 匹配单个字符
* 匹配前导符0到多次
.* 匹配任意多个字符,整行
[] 匹配指定范围内的一个字符 [lL]ove 匹配love或Love
[ - ] 匹配指定范围内的一个字符 [a-z0-9A-Z] [a-Z]
[^] 匹配不在指定组内的字符 [^a-z0-9A-Z]
用来转义元字符 love.
< 词首定位符
< 词尾定位符
(..) 匹配稍后使用的字符
:%s#(192.168.1).38#1.39# 把ip地址192.168.1.38换成192.168.1.39 (192.168.1) 后面使用1引用
:%s #(192.)(168.)(1.)38#12339# 把ip地址192.168.1.38换成192.168.1.39 (192.)(168.)(1.) 使用1 2 3引用
:1,$ s/(.*)/#1/g (.*) 匹配单行 单行前面加#注释 1,$ 表示所有行,所有行前面添加注释
x{m} 字符x重复出现m次
x{m,} 字符x重复出现m次以上
x{m,n} 字符x重复出现m次到n次
3) 扩展元字符:egrep 或 grep -E
+ 匹配一个或多个前导字符
? 匹配0个或1个前导字符
a|b 匹配a或b
() 组字符 (ab) 把ab当做一个整体进行匹配
(..)(..)12 标签匹配字符 (love)able1er
x{m} 字符x重复出现m次
x{m,} 字符x重复出现m次以上
x{m,n} 字符x重复出现m次到n次