当前位置: 技术问答>linux和unix
问个sed的正则表达式
来源: 互联网 发布时间:2016-04-25
本文导语: 文件file.txt其内容为: ab axb 现有命令 a. sed -n '/^a.*b$/p' file.txt 结果: ab axb b. sed -n '/^a*b$/p' file.txt 结果: ab 怎么解释? .与.*有什么区别呢? 哪位大吓指点一下,谢谢! | ^a.*b$ # ...
文件file.txt其内容为:
ab
axb
现有命令
a. sed -n '/^a.*b$/p' file.txt
结果:
ab
axb
b. sed -n '/^a*b$/p' file.txt
结果:
ab
怎么解释? .与.*有什么区别呢? 哪位大吓指点一下,谢谢!
ab
axb
现有命令
a. sed -n '/^a.*b$/p' file.txt
结果:
ab
axb
b. sed -n '/^a*b$/p' file.txt
结果:
ab
怎么解释? .与.*有什么区别呢? 哪位大吓指点一下,谢谢!
|
^a.*b$ # 匹配 a 和 b 中间有任何字符的情况
^a*b$ # 匹配 a 和 b 中间有任意个a的情况
差别是 * 对应的是 . 还是 a
|
shell中正则表达式
^ 只匹配行首
$ 只匹配行尾
* 一个单字符后紧跟*,匹配0个或多个此单字符
[] 匹配[]内字符。可以是一个单字符,也可以是字符序列。
可以使用-表示[]内字符序列范围,如用[1-5]代替[12345]
用来屏蔽一个元字符的特殊含义。
因为有时在shell中一些元字符有特殊含义。
可以使其失去应有意义
. 匹配任意单字符
^ 只匹配行首
$ 只匹配行尾
* 一个单字符后紧跟*,匹配0个或多个此单字符
[] 匹配[]内字符。可以是一个单字符,也可以是字符序列。
可以使用-表示[]内字符序列范围,如用[1-5]代替[12345]
用来屏蔽一个元字符的特殊含义。
因为有时在shell中一些元字符有特殊含义。
可以使其失去应有意义
. 匹配任意单字符