shell学习第十一天----sed正则的精确控制

有多少文本会改动

在使用sed的时候我们来看这么两个问题:第一个问题是有多少人文本会匹配,第二个问题是从哪里开始匹配.

回答是:正则表达式可以匹配整个表达式的输入文本中最长的,最左边的子字符串.除此之外,匹配的空(null)字符串,则被认为是比完全不匹配的还长.

echo syx is a good body | sed ‘s/syx/zsf/’   使用固定字符串

sed可以使用完整的正则表达式.但是应该知道”从最长的最左边”规则的重要性.

 

echo Tolstoy is worldly | sed ‘s/T.*y/Camus/’    

Camus  

很明显,我们只想要匹配Tolstoy,但是由于匹配会扩展到可能的最长长度的文本量,所以出现了这样的结果.

 

这就需要我们精确定义:

echo Tolstoy is worldly | sed ‘s/T[[:alpha:]]*y/Camus/’

Camus is worldly

在文本查找中,有事喊可能会匹配到null字符串,而在执行文本替代时,也允许插入文本.

ehco abc | sed ‘s/b*/l/’

labc

ehco abc | sed ‘s/b*/l/g’

lalcl

请留意,b*shi如何匹配abc的前面与结尾的null字符串.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值