LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1037|回复: 1

shell 替换问题,解决了谢谢

[复制链接]
发表于 2010-7-22 19:10:49 | 显示全部楼层 |阅读模式
echo 20040816140105 | sed 's/\(^.\{8\}\)\[color="Red"]{0,1\}\(..\)/\1:\2/g'  

这里 (^.\{8\} 是指单个字符出现8次,就是前8个任意字符。

{0,1\}\{..\} 大致意思明白,就是任意2个字符,不过{0,1\}看不懂,通常情况下,我用 sed 's/a[0-9]\{2\}\)/& -fr/' urfile, 但是这里{0,1\}是指“模式出现的次数 为什么要 0,1次的判断 ?

把\{0,1\} 改成 \{0,2\} ,\{0,3\}, 输出结果都一样.  不是很理解.

请达人指点..
 楼主| 发表于 2010-8-4 10:25:43 | 显示全部楼层
这个表达式输出的结果是: 20040816:14:01:05

如果不加{0,1\}, 输出结果就变成了 20040816:140105, 后六位没有分号间隔了,
请问为什么这里要做 {0,1\} 的判断?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表