[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理怎样查找TXT中相同IP,并将重复的IP输入到TXT文本中?

查找TXT文件中相同IP,并将重复的IP输入到一个TXT文本中?
如:
10.1.1.2        10.1.2.136        10.1.4.17        10.1.5.151
10.1.1.3        10.1.2.137        10.1.4.18        10.1.5.152
10.1.1.4        10.1.2.138        10.1.4.19        10.1.5.153
10.1.1.5        10.1.2.139        10.1.4.20        10.1.5.154
10.1.1.6        10.1.2.140        10.1.4.21        10.1.5.155
10.1.1.7        10.1.2.141        10.1.4.22        10.1.5.156
10.1.1.8        10.1.2.142        10.1.4.23        10.1.5.157
10.1.1.9        10.1.2.143        10.1.4.24        10.1.5.158
10.1.1.10        10.1.2.144        10.1.4.25        10.1.5.159

......           ......                 ......

TXT文件:
链接: https://pan.baidu.com/s/1SCZHVBwWCJOc7lZB_k8IbQ 提取码: 7n7x

回复 1# 滴血雄鹰


sed + gawk
  1. @echo off
  2. echo 正在拆分IP
  3. sed "s/[[:space:]]/\n/g" "IP.txt" > "IP_Temp.txt"
  4. echo 正在查找重复IP
  5. gawk "{a[$0]++}END{for(i in a)if(a[i]>1)print i}" "IP_Temp.txt" > "IP_Duplicate.txt"
复制代码
http://bcn.bathome.net/s/tool/index.html?key=sed
http://bcn.bathome.net/s/tool/index.html?key=gawk
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

不堪入目的代码
  1. #! /usr/bin/env python3
  2. # -*- coding: UTF-8 -*-
  3. import re
  4. ip = re.findall('\d+\.\d+\.\d+\.\d+' ,open('IP.txt', 'r+').read())
  5. print(set([i for i in ip if ip.count(i) > 1]),file=open('IP_Duplicate.txt','a+'))
复制代码
#&cls&@powershell "Invoke-Expression ([Io.File]::ReadAllText('%~0',[Text.Encoding]::UTF8))" &pause&exit

TOP

回复 2# Batcher


一闪就没有了,    IP_Temp.txt和IP_Duplicate.txt是空的。

TOP

回复 4# 滴血雄鹰


参考 Q-01 的方法
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. @echo off
  2. PowerShell "$h=@{};$str=(type IP.txt -ReadCount 0) -join ' '; forEach($m In [regex]::Matches($str, '(?:\d+\.){3}\d+')){$h[$m.Value]++};forEach($key In $h.keys){if($h[$key] -gt 1){$key}}"
  3. pause
复制代码

TOP

返回列表