找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 33933|回复: 14

[文本处理] 批处理怎样把IP相同段合并整理?

[复制链接]
发表于 2015-11-8 04:54:48 | 显示全部楼层 |阅读模式
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
192.168.1.5
192.168.1.7
192.168.2.8
192.168.5.1
192.168.5.2
192.168.6.1
192.168.9.2
192.168.9.3
192.169.3.99

TXT文本是这样子的,使用批处理过后是
192.168.1.1
192.168.2.1
192.168.5.1
192.168.6.1
192.168.9.1
192.169.3.1
请大神帮忙只要
发表于 2015-11-8 05:11:48 | 显示全部楼层
并没有说明处理规则是什么。
发表于 2015-11-8 05:13:31 | 显示全部楼层
也是一个findstr能处理居然也要问。
发表于 2015-11-8 09:13:43 | 显示全部楼层
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "tokens=1,2,3,4 delims=." %%a in (1.txt) do if "%%d"=="1" echo;%%a.%%b.%%c.%%d
  3. pause
复制代码
发表于 2015-11-8 09:18:59 | 显示全部楼层
  1. @echo off
  2. (for /f "delims=" %%a in (ip.txt) do (
  3.     if not defined #%%~na (
  4.         echo;%%~na.1
  5.         set #%%~na=1
  6.     )
  7. ))>结果.txt
  8. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
B魔方大人 + 1 别具一格的代码

查看全部评分

发表于 2015-11-8 17:02:44 | 显示全部楼层
回复 3# 依山居


    把你的那个findstr发出来看看吧
发表于 2015-11-8 17:05:39 | 显示全部楼层
  1. gawk "BEGIN{FS=OFS="."}{if(!a[$1.$2.$3]++)print $1"."$2"."$3"."1}" 1.txt
复制代码
发表于 2015-11-8 17:05:51 | 显示全部楼层
回复 6# DAIC


      我只是放嘴炮。
并没有确定楼主的处理规则。
发表于 2015-11-11 16:09:41 | 显示全部楼层
  1. """
  2. C段IP筛选整理去重.PY
  3. 依山居 16:04 2015/11/11
  4. 吐槽,这题本质是个去重处理。我写了半天没写出来。
  5. 题目来源: http://www.bathome.net/thread-38037-1-2.html
  6. """
  7. import time
  8. start=time.time()

  9. with open("a.txt","r") as f:
  10.     txt=f.read()
  11.     ll=[]
  12.     ip=txt.rsplit()
  13.     for l in ip:
  14.         l=l.split(".")
  15.         l[-1]="1"
  16.         joinl=".".join(l)
  17.         if (joinl not in ll):
  18.            ll.append(joinl)
  19.            print(joinl)

  20. end=time.time()
  21. pt=end-start
  22. print("程序运行时间:",pt)
  23. try:
  24.     input("按回车退出")
  25. except SyntaxError:
  26.     pass

  27. """
  28. 输出:
  29. 192.168.1.1
  30. 192.168.2.1
  31. 192.168.5.1
  32. 192.168.6.1
  33. 192.168.9.1
  34. 192.169.3.1
  35. 程序运行时间: 0.022000789642333984
  36. """
复制代码
发表于 2015-11-11 16:36:58 | 显示全部楼层
回复 9# 依山居
  1. map = {}
  2. with open("a.txt","r") as f:
  3.     txt=f.read()
  4.     ip=txt.rsplit()
  5.     for l in ip:
  6.         map['.'.join(l.split('.')[:-1]+['1'])]=True

  7.     for l in map:
  8.         print(l)
复制代码

评分

参与人数 1技术 +1 收起 理由
依山居 + 1 1

查看全部评分

发表于 2015-11-20 07:30:57 | 显示全部楼层
  1. """
  2. python字典C段IP筛选整理.py
  3. 题目来源 http://www.bathome.net/thread-38037-1-2.html
  4. 依山居 7:16 2015/11/20
  5. 字典中的键唯一,所以可以用来去重
  6. """
  7. 字典={}
  8. with open("a.txt") as f:
  9.     txt=f.readlines()
  10.     f.close()
  11.     ip=['.'.join(r.split(".")[0:3]) for r in txt]

  12. for r in ip:
  13.     字典[r]=1
  14.    
  15. for r in 字典:
  16.     print(r+".1")

  17. try:
  18.     input("回车退出")
  19. except SyntaxError:
  20.     pass
复制代码
发表于 2015-11-20 08:07:18 | 显示全部楼层
  1. """
  2. python集合C段IP筛选整理.py
  3. 题目来源 http://www.bathome.net/thread-38037-1-2.html
  4. 依山居 7:51 2015/11/20
  5. 相关资料 Python 3语法小记(三) 集合set
  6. http://blog.csdn.net/jcjc918/article/details/9359503

  7. 集合中的值唯一,可以用来去重
  8. """
  9. #集合的括号也是{}与字典相同,创建空集合使用set()方法
  10. 集合=set()

  11. with open("a.txt") as f:
  12.     txt=f.readlines()
  13.     f.close()
  14.    
  15. ip=['.'.join(r.split(".")[0:3]+['1']) for r in txt]

  16. for r in ip:
  17.     集合.add(r)

  18. for r in 集合:
  19.     print(r)

  20. try:
  21.     input("回车退出")
  22. except SyntaxError:
  23.     pass

  24. """
  25. 输出:
  26. 192.168.1.1
  27. 192.168.2.1
  28. 192.168.5.1
  29. 192.168.6.1
  30. 192.168.9.1
  31. 192.169.3.1
  32. """
复制代码
发表于 2015-11-20 08:41:35 | 显示全部楼层
回复 12# 依山居


    以后单独发到Python版块吧
发表于 2015-11-20 11:08:15 | 显示全部楼层
回复 13# Batcher


    浪费版面.
发表于 2015-11-20 12:35:12 | 显示全部楼层
回复 14# 依山居


    多多支持Python版块的发展吧
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-18 10:00 , Processed in 0.021414 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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