中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [求助][没人能帮我吗]求将零散ip段整合的批处理【急】
作者:
标题: [求助][没人能帮我吗]求将零散ip段整合的批处理【急】 上一主题 | 下一主题
cz1314
初级用户





积分 64
发帖 43
注册 2007-11-12
状态 离线
『楼 主』:  [求助][没人能帮我吗]求将零散ip段整合的批处理【急】

从纯真数据库上去一段ip如下

-------------以下是取样-------------------------------------
58.60.232.202   58.60.232.203   广东省深圳市龙岗区 电信
58.60.232.204   58.60.232.204   广东省深圳市龙岗区 龙平东路宇宙村网吧
58.60.232.205   58.60.232.255   广东省深圳市龙岗区 电信
58.60.233.0     58.60.239.255   广东省深圳市 电信  
58.60.240.0     58.60.243.255   广东省深圳市龙岗区 电信
58.60.244.0     58.61.3.255     广东省深圳市 电信
58.61.4.0       58.61.4.255     广东省深圳市罗湖区 电信
58.61.5.0       58.61.5.255     广东省深圳市龙岗区 电信
58.61.6.0       58.61.7.255     广东省深圳市 电信
58.61.8.0       58.61.8.255     广东省深圳市福田区 电信
58.61.9.0       58.61.19.255    广东省深圳市 电信
58.61.20.0      58.61.20.255    广东省深圳市宝安区 电信
58.62.37.0      58.62.40.255    广东省广州市 电信
58.62.41.0      58.62.41.255    广东省广州市白云区 电信
58.62.42.0      58.62.42.135    广东省广州市 大学城
58.63.104.0     58.63.105.255   广东省广州市天河区 电信
58.63.106.0     58.63.106.255   广东省广州市白云区 电信
58.63.107.0     58.63.107.255   广东省广州市天河区 电信
---------------------------------------------------------
59.40.0.0       59.51.0.0       广东省汕头市 (潮南区/潮阳区)电信ADSL
61.20.0.0       61.28.0.0       广东省广州市白云区 电信
-------------以上是取样---------------------------
--------------------------------------------------
我希望把上面的ip地址整理成下面这样:

58.60.0.0       58.64.0.0

59.40.0.0       59.45.0.0
59.45.0.0       59.50.0.0
59.50.0.0       59.51.0.0
61.20.0.0       61.25.0.0
61.25.0.0       61.28.0.0
---------------------------------------------------------


简单解释下 :

把ip分为  A B C D 4个段  即 A.B.C.D
一  首先比较 A段:
1   如果A段相同则继续比较B段,如果上下2段ip的B 段差 小于(等于)1,则合并这2段。(比较的是红色部分)
    例如:
    --------------以下是取样----------------------------------
    58.60.244.0     58.61.3.255     广东省深圳市 电信
    58.61.4.0       58.61.4.255     广东省深圳市罗湖区 电信
    --------------以上是取样----------------------------------
    将整理成: 58.60.244.0 58.61.4.255   
   
2   如果A段不同,则继续选择下面的ip进行A段的比较。
    依次类推!

二  比较同一行 B 段ip
1   如果同一行的 B 段 ip 差小于(等于)5,则继续取下一行进行比较。

2   如果同一行的 B 段 ip 差大于 5 ,则以5为单位进行划分。

    例如:
    --------------以下是取样----------------------------------
    59.40.0.0       59.51.0.0       广东省汕头市 (潮南区/潮阳区)电信ADSL
    61.20.0.0       61.28.0.0       广东省广州市白云区 电信
    --------------以上是取样----------------------------------
    将整理成:
    59.40.0.0       59.45.0.0
    59.45.0.0       59.50.0.0
    59.50.0.0       59.51.0.0
    61.20.0.0       61.25.0.0
    61.25.0.0       61.28.0.0
   
希望高高手赐教如何写这样的批处理命令,

以上 一、二 2个部分 可以分为2个批处理分开处理,如果能合成一个那就更完美了

小弟跪求!! 愿送135服务器一台!!
                                                  QQ:1919134

2007-11-12 23:19
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 2 楼』:  

用 gawk sed 处理问题不大,就是很麻烦,需要反复的测试,楼主自己看看下面两篇文章自己写好了
http://www.cn-dos.net/forum/viewthread.php?tid=24225
http://www.cn-dos.net/forum/viewthread.php?tid=24210

2007-11-13 21:24
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 3 楼』:  

或者去 bbs.chinaunix.net 论坛发问,那里 awk&sed 狂人多

2007-11-13 21:25
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: