Board logo

标题: [文本处理] 批处理如何将同网段的连续的ip地址进行合并 [打印本页]

作者: yx74110    时间: 2013-3-25 21:55     标题: 批处理如何将同网段的连续的ip地址进行合并

由于站点需要判断地区调转,而且要比较精准。
我把IP数据库分了几份,但是数据太大,手动整理效率太低。
求大神帮忙。给批了。

例子
111.222.1.1 111.222.233.1
111.222.233.2 111.223.1.1
111.223.1.2 111.224.220.5
122.122.122.1 122.123.123.123
123.3.3.3 123.4.4.4
123.4.4.5 123.4.4.6
123.4.4.7 123.11.12.13

运行结果
111.222.1.1 111.224.220.5
122.122.122.1 122.123.123.123
123.3.3.3 123.11.12.13

每段IP中间是TAB

求大神帮忙。。


我是想把多段连接的IP段简化成一段。前提是中间不间断。
大家知道IP是255进制的,我把一个小样板传上来了,里面有样板以及结果。。谢谢大家。
作者: qwe13518    时间: 2013-3-26 08:50

加KK63420978 讨论
作者: yx74110    时间: 2013-3-26 09:57

回复 2# qwe13518


    在哪里???????????
作者: BAT-VBS    时间: 2013-3-26 11:51

1、请用文字描述一下规律,不要让别人去猜。
2、请选取一段真实文本,压缩之后传上来,以便测试。
作者: yx74110    时间: 2013-3-26 13:49

回复 4# BAT-VBS


    样板已到
作者: yx74110    时间: 2013-3-26 15:39

回复 4# BAT-VBS


    大湿,,可以搞定吗??
作者: yx74110    时间: 2013-3-27 09:22

没人能解决吗??
作者: cjiabing    时间: 2013-3-27 12:40

我估计没人看得懂你想干嘛!~
最起码的,你要告诉大家你的结果是怎么从样本产生的?
作者: CrLf    时间: 2013-3-27 16:49

不考虑最后一位为0的退位计算:
  1. @echo off&setlocal enabledelayedexpansion
  2. >b.txt (
  3. for /f "tokens=1,2" %%a in (a.txt) do (
  4.    set "d1=%%~na"&set "d2=%%~nb"
  5.    set "p1=%%~xa"&set "p2=%%~xb"
  6.    set /a "n1=!p1:.=!-1,n2=!p2:.=!-1"
  7. :test
  8.    if !d1!.!n1! neq !end! (
  9.       if defined start echo;!start! !end!
  10.       set start=%%a
  11.    )
  12.    set end=!d2!!p2!
  13. ))
  14. if defined d1 (
  15.    set "d1="
  16.    call :test>>b.txt 2>nul
  17. ) else exit/b
  18. pause
复制代码





欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2