Shell中的正则表达式可以再vim、sed、awk、grep等引用
正则表达式由元字符组成
元字符它们表达的是不同于字面本身的含义,下面来逐一进行介绍
元素符分为基本正则表达元素符和扩展正则表达元素符
基本元素符
^ 行首定位符 ^a表示以a开头的内容
$ 行尾定位符 a$ 表示以a结尾的内容
. 匹配任意的单个字符 注意只匹配一个字符
- 匹配前导符0到多次,a* 匹配可以不匹配a和匹配a多次
.* 任意多个字符字符
[] 匹配指定范围内的一个字符 [Ll]ove love可以Love也可以
[^] 匹配不再指定组内的字符 [^a-z]ove 可以理解为取反的意思
\ 转义元字符 和 ‘’ “” \ 一样
< 词首定位符 和^类似 不过^是行首 <是词首 每个单词的开头
> 词尾定位符 和$类似 $是行尾 >是词尾 每个单词的尾部
() 例:(…) 匹配稍后使用的字符的标签 这个有点难 加点例子
下面代码在vim中
%表示匹配整个文档 s/被替换的内容/替换后的内容/
:% s/172.16.130.1/172.16.130.5/
:% s/(172.16.130.)1/\15/ #用(和)把想要的字符串括起来 在替换后的内容里进行\1调用
:% s/(172.)(16.)(130.)1/\1\2\35/
:3,9 s/(.*)/#\1/ 加注释
x{m} 匹配x字符m次 连续几次出现x字母 这样好理解吧
x{m,} 匹配x字符m次和m次以上
x{m,n}匹配x字符m次但n次之间
扩展正则表达式元字符
- 匹配1~n个前导字符
?匹配0~1个前导字符
a|b匹配a 或者b
()组字符 例[root@localhost ~]# egrep “loveable|rs” 1.txt
rs
loveable
lovers
[root@localhost ~]# egrep “love(able|rs)” 1.txt
loveable
lovers