免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
1234下一页
最近访问板块 发新帖
查看: 10968 | 回复: 38
打印 上一主题 下一主题

sed 替换用法请教? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-23 13:00 |只看该作者 |倒序浏览
比如,我的文件里有许多 060.247.003.255 这样的ip,但这样的表示不规范,我如何批处理一下

变成 60.247.3.255 这样的规范模式呢?

谢谢!

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
2 [报告]
发表于 2009-07-23 13:05 |只看该作者
try:
  1. sed 's/\(^\|[^0-9]\)0\+\([1-9]\)/\1\2/g' urfile
复制代码

[ 本帖最后由 blackold 于 2009-7-23 13:18 编辑 ]

论坛徽章:
1
数据库技术版块每日发帖之星
日期:2016-01-24 06:20:00
3 [报告]
发表于 2009-07-23 13:06 |只看该作者
sed s'/0\+\([1-9]\)/\1/g' urfile?不过最好还是知道文本的格式,否则可能会有误伤

论坛徽章:
0
4 [报告]
发表于 2009-07-23 13:07 |只看该作者
如果没有影响因素:

  1. sed -r 's/0*([0-9]+\.?)/\1/g'
复制代码


调整了一下,[0-9]后面不能用*,得用+。

[ 本帖最后由 kwokcn 于 2009-7-23 13:10 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2009-07-23 13:12 |只看该作者
好像不行
你比如
202.038.008.0

这样的ip 就会变为 22.38.8.0

论坛徽章:
0
6 [报告]
发表于 2009-07-23 13:15 |只看该作者
如果没有影响因素:

[Copy to clipboard] [ - ]CODE:
sed -r 's/0*([0-9]+\.?)/\1/g'
调整了一下,[0-9]后面不能用*,得用+。

这个可以了,谢谢了

论坛徽章:
0
7 [报告]
发表于 2009-07-23 13:15 |只看该作者

回复 #5 kaka_sun 的帖子


  1. [root]# echo 202.038.008.0 | sed -r 's/0*([0-9]+\.?)/\1/g'
  2. 202.38.8.0
复制代码

论坛徽章:
5
2015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:50:282015年亚洲杯之朝鲜
日期:2015-03-13 22:47:33IT运维版块每日发帖之星
日期:2016-01-09 06:20:00IT运维版块每周发帖之星
日期:2016-03-07 16:27:44
8 [报告]
发表于 2009-07-23 13:25 |只看该作者

回复 #7 kwokcn 的帖子

这方法好!学习!
0*可改为0+。

论坛徽章:
0
9 [报告]
发表于 2009-07-23 13:31 |只看该作者

回复 #8 blackold 的帖子

黑哥,用0+的话会有bug,处理"192.168.0.102"这种IP的时候,对于102这个数字,0+([0-9]+\.?)整个匹配到的是02,\1匹配到的是2;0*([0-9]+\.?)由于0是{0,},所以整个能匹配到102,\1也能正确对应102。:)

论坛徽章:
0
10 [报告]
发表于 2009-07-23 13:39 |只看该作者

回复 #1 kaka_sun 的帖子

sed -r ':a;s/\b0+(.+)/\1/g;ta'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP