sed 细节理解 . && .*

echo "12345//69999\7ii\ii/0000i/89/9999" |sed 's|/[^\\/]*|\||g'

12345||\7ii\ii|||

sed 's|/[^\\/]*|\||g'

s 替换

| 分隔符

/ 以 /开头

[^\\/] ^ 不是 \ 或者 /

"*" 通配

|\|| 替换为 |

g 全部替换

12345||\7ii\ii|||

12345 不是以 /开头 没有替换

第一个 / 后面跟了一个 /,没有命中,但是后面不是 .*,是 *

所以此次命中的就是1个 /,

第2个 / 后面跟了69999, 第2次命中的内容为 /69999,碰到 \7停止

重新从\7开始匹配

echo "12345//69999\7ii\ii/0000i/89/9999" |sed 's|/[^\\/].*|\||g'

12345/|

//

第一个/后面跟 /,没有匹配上 注意有一个.

第2个/后面匹配上了,整句话后面不再分析,直接匹配

不带 .的* 会逐个字节分析匹配字符串

带 .* 匹配上第一个之后,后面的内容不再分析,直接匹配上

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值