免费注册 查看新帖 |

Chinaunix

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

shell 字符串替换的问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-06-17 20:12 |只看该作者 |倒序浏览
本帖最后由 robinylp 于 2011-06-17 20:13 编辑

我有几个IP地址和掩码:
192.168.1.0 23
192.168.45.0 22
192.168.4.0 21
....

我想替换后面的掩码:
变成
192.168.1.0 0.0.1.255
192.168.45.0 0.0.3.255
192.168.4.0 0.0.7.255

请问哪位大侠有什么好办法吗?

先谢谢了!

论坛徽章:
0
2 [报告]
发表于 2011-06-17 20:54 |只看该作者
awk '{gsub(/ 20 /, " 0.0.15.255 "); gsub(/ 21 /, " 0.0.7.255 "); gsub(/ 22 /, " 0.0.3.255 "); gsub(/ 23 /, " 0.0.1.255 "); gsub(/ 24 /, " 0.0.0.255 "); gsub(/ 25 /, " 0.0.0.127 "); gsub(/ 26 /, " 0.0.0.63 "); gsub(/ 27 /, " 0.0.0.31 "); gsub(/ 28 /, " 0.0.0.15 "); gsub(/ 29 /, " 0.0.0.7 "); gsub(/ 30 /, " 0.0.0.3 ");  print $0}' networks

本人只是用最笨的办法,如有改善的,请赐教。

论坛徽章:
145
技术图书徽章
日期:2013-10-01 15:32:13戌狗
日期:2013-10-25 13:31:35金牛座
日期:2013-11-04 16:22:07子鼠
日期:2013-11-18 18:48:57白羊座
日期:2013-11-29 10:09:11狮子座
日期:2013-12-12 09:57:42白羊座
日期:2013-12-24 16:24:46辰龙
日期:2014-01-08 15:26:12技术图书徽章
日期:2014-01-17 13:24:40巳蛇
日期:2014-02-18 14:32:59未羊
日期:2014-02-20 14:12:13白羊座
日期:2014-02-26 12:06:59
3 [报告]
发表于 2011-06-17 21:04 |只看该作者
本帖最后由 jason680 于 2011-06-17 21:07 编辑
awk '{gsub(/ 20 /, " 0.0.15.255 " gsub(/ 21 /, " 0.0.7.255 " gsub(/ 22 /, " 0.0.3.255 " gsub(/ ...
robinylp 发表于 2011-06-17 20:54



awk '{printf $1" ";x=2**(32-$2)-1;for(n=3;n>0;n--){printf int(x/(256**n))".";x%=256**n}print x}' networks

论坛徽章:
0
4 [报告]
发表于 2011-06-17 21:43 |只看该作者
jason680,

崇拜的五体投地!

小弟先去试试!

感激不尽啊!

论坛徽章:
0
5 [报告]
发表于 2011-06-17 21:52 |只看该作者
awk '{printf $1" ";x=2**(32-$2)-1;for(n=3;n>0;n--){printf int(x/(256**n))".";x%=256**n}print x}' networks

出现
awk: line 1: syntax error at or near *
这样的错误,是否不认识**?

论坛徽章:
0
6 [报告]
发表于 2011-06-17 21:58 |只看该作者
awk '{printf $1" ";x=2**(32-$2)-1;for(n=3;n>0;n--){printf int(x/(256**n))".";x%=256**n}print x}' net ...
robinylp 发表于 2011-06-17 21:52



    awk '{printf $1" ";x=2^(32-$2)-1;for(n=3;n>0;n--){printf int(x/(256^n))".";x%=256^n}print x}' networks

搞定!

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP