返回列表 发帖

[文本处理] 批处理怎样把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
请大神帮忙只要

并没有说明处理规则是什么。

TOP

也是一个findstr能处理居然也要问。

TOP

@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
pauseCOPY
心累~努力,为了美好的明天。

TOP

@echo off
(for /f "delims=" %%a in (ip.txt) do (
    if not defined #%%~na (
        echo;%%~na.1
        set #%%~na=1
    )
))>结果.txt
pauseCOPY
1

评分人数

TOP

回复 3# 依山居


    把你的那个findstr发出来看看吧

TOP

gawk "BEGIN{FS=OFS=\".\"}{if(!a[$1.$2.$3]++)print $1\".\"$2\".\"$3\".\"1}" 1.txtCOPY

TOP

回复 6# DAIC


      我只是放嘴炮。
并没有确定楼主的处理规则。

TOP

"""
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
"""COPY

TOP

回复 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)COPY
1

评分人数

TOP

"""
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:
    passCOPY
下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

TOP

"""
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
"""COPY
下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

TOP

回复 12# 依山居


    以后单独发到Python版块吧
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 13# Batcher


    浪费版面.
下载安装python3 https://www.python.org/downloads/ 代码存为xx.py 双击运行或IDLE打开F5运行

TOP

回复 14# 依山居


    多多支持Python版块的发展吧
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表