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#\1\2\339# 把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当做一个整体进行匹配
(..)(..)\1\2 标签匹配字符 (love)able\1er
x{m} 字符x重复出现m次
x{m,} 字符x重复出现m次以上
x{m,n} 字符x重复出现m次到n次
转载于:https://www.cnblogs.com/lovelinux199075/p/8945160.html