shell中sed 匹配最短模式

eg1:  
echo "<b>This</b> is what <b>I</b> meant." | sed -e 's/<.*>//g'
  变成:
  meant.
  我们要的不是这个,而是:
  This is what I meant.
  幸运的是,有一种简便方法来纠正该问题。我们不输入“’<’ 字符后面跟有一些字符并以 ‘>’ 字符结束”的规则表达式,而只需输入一个“’<’ 字符后面跟有任意数量非 ‘>’ 字符并以 ‘>’ 字符结束”的规则表达式。这将与最短、而不是最长的可能性匹配。
新命令如下:
echo "<b>This</b> is what <b>I</b> meant." |sed -e 's/<[^>]*>//g'
‘[^>]’ 指定“非 ‘>’”字符,其后的 ‘*’ 完成该表达式以表示“零或多个非 ‘>’ 字符”

eg2:
五楼[五楼(robot)]我要去五楼[五楼(robot)]
sed -e 's/\[[^]]*\]/ /g'
输出五楼 我要去五楼

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值