标题: [文本处理] 批处理怎样把IP相同段合并整理? [打印本页]
作者: caonimade 时间: 2015-11-8 04:54 标题: 批处理怎样把IP相同段合并整理?
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
并没有说明处理规则是什么。
作者: 依山居 时间: 2015-11-8 05:13
也是一个findstr能处理居然也要问。
作者: 尘丶 时间: 2015-11-8 09:13
- @echo off&setlocal enabledelayedexpansion
- for /f "tokens=1,2,3,4 delims=." %%a in (1.txt) do if "%%d"=="1" echo;%%a.%%b.%%c.%%d
- pause
复制代码
作者: pcl_test 时间: 2015-11-8 09:18
- @echo off
- (for /f "delims=" %%a in (ip.txt) do (
- if not defined #%%~na (
- echo;%%~na.1
- set #%%~na=1
- )
- ))>结果.txt
- pause
复制代码
作者: DAIC 时间: 2015-11-8 17:02
回复 3# 依山居
把你的那个findstr发出来看看吧
作者: DAIC 时间: 2015-11-8 17:05
- gawk "BEGIN{FS=OFS=\".\"}{if(!a[$1.$2.$3]++)print $1\".\"$2\".\"$3\".\"1}" 1.txt
复制代码
作者: 依山居 时间: 2015-11-8 17:05
回复 6# DAIC
我只是放嘴炮。
并没有确定楼主的处理规则。
作者: 依山居 时间: 2015-11-11 16:09
- """
- C段IP筛选整理去重.PY
- 依山居 16:04 2015/11/11
- 吐槽,这题本质是个去重处理。我写了半天没写出来。
- 题目来源: http://www.bathome.net/thread-38037-1-2.html
- """
- import time
- start=time.time()
-
- with open("a.txt","r") as f:
- txt=f.read()
- ll=[]
- ip=txt.rsplit()
- for l in ip:
- l=l.split(".")
- l[-1]="1"
- joinl=".".join(l)
- if (joinl not in ll):
- ll.append(joinl)
- print(joinl)
-
- end=time.time()
- pt=end-start
- print("程序运行时间:",pt)
- try:
- input("按回车退出")
- except SyntaxError:
- pass
-
- """
- 输出:
- 192.168.1.1
- 192.168.2.1
- 192.168.5.1
- 192.168.6.1
- 192.168.9.1
- 192.169.3.1
- 程序运行时间: 0.022000789642333984
- """
复制代码
作者: CrLf 时间: 2015-11-11 16:36
回复 9# 依山居 - map = {}
- with open("a.txt","r") as f:
- txt=f.read()
- ip=txt.rsplit()
- for l in ip:
- map['.'.join(l.split('.')[:-1]+['1'])]=True
-
- for l in map:
- print(l)
复制代码
作者: 依山居 时间: 2015-11-20 07:30
- """
- python字典C段IP筛选整理.py
- 题目来源 http://www.bathome.net/thread-38037-1-2.html
- 依山居 7:16 2015/11/20
- 字典中的键唯一,所以可以用来去重
- """
- 字典={}
- with open("a.txt") as f:
- txt=f.readlines()
- f.close()
- ip=['.'.join(r.split(".")[0:3]) for r in txt]
-
- for r in ip:
- 字典[r]=1
-
- for r in 字典:
- print(r+".1")
-
- try:
- input("回车退出")
- except SyntaxError:
- pass
复制代码
作者: 依山居 时间: 2015-11-20 08:07
- """
- python集合C段IP筛选整理.py
- 题目来源 http://www.bathome.net/thread-38037-1-2.html
- 依山居 7:51 2015/11/20
- 相关资料 Python 3语法小记(三) 集合set
- http://blog.csdn.net/jcjc918/article/details/9359503
-
- 集合中的值唯一,可以用来去重
- """
- #集合的括号也是{}与字典相同,创建空集合使用set()方法
- 集合=set()
-
- with open("a.txt") as f:
- txt=f.readlines()
- f.close()
-
- ip=['.'.join(r.split(".")[0:3]+['1']) for r in txt]
-
- for r in ip:
- 集合.add(r)
-
- for r in 集合:
- print(r)
-
- try:
- input("回车退出")
- except SyntaxError:
- pass
-
- """
- 输出:
- 192.168.1.1
- 192.168.2.1
- 192.168.5.1
- 192.168.6.1
- 192.168.9.1
- 192.169.3.1
- """
复制代码
作者: Batcher 时间: 2015-11-20 08:41
回复 12# 依山居
以后单独发到Python版块吧
作者: 依山居 时间: 2015-11-20 11:08
回复 13# Batcher
浪费版面.
作者: Batcher 时间: 2015-11-20 12:35
回复 14# 依山居
多多支持Python版块的发展吧
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |