sed使用的并不是完全的正则表达式

经过实验发现,命令sed 's/pattern/replacement/' file中,pattern使用的并不是完全的正则表达式,而如果想使用正则表达式,需要使用sed命令的 -r 选项

sed  -r  's/RegexPattern/replacement/' file

 

分析:

第三个命令echo abc-|sed 's/-$//'可以实现将末尾的中划线删除。

第二个命令echo abc- |sed 's/^.+-$//' 想实现将以中划线结尾的行,替换为空行,由上图知道,并没有奏效,可见sed的pattern并不是完全的正则表达式,

对比图中最后一行命令,加上-r选项之后,显示可以得到预期结果,pattern被视为正则表达式。

reference:

http://zhidao.baidu.com/link?url=EvIfzZHCbQCB2qPNaoRuuL3dF6LtQwbn96V1cfQ9nSOHzIFrlbR0S2gRkAh9J33ZD5LEBw86OLa8jEW6UKiutChziREn22iHJkGQVQf6NY3

posted @ 2016-05-17 21:23  morein2008  阅读(341)  评论(0编辑  收藏  举报