Board logo

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

作者: 滴血雄鹰    时间: 2020-6-22 16:32     标题: 批处理怎样查找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
作者: Batcher    时间: 2020-6-22 19:17

回复 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
作者: ivor    时间: 2020-6-22 20:20

不堪入目的代码
  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+'))
复制代码

作者: 滴血雄鹰    时间: 2020-6-22 22:33

回复 2# Batcher


一闪就没有了,    IP_Temp.txt和IP_Duplicate.txt是空的。
作者: Batcher    时间: 2020-6-23 09:35

回复 4# 滴血雄鹰


参考 Q-01 的方法
https://mp.weixin.qq.com/s/6lbb97qUOs1sTyKJfN0ZEQ
作者: WHY    时间: 2020-6-23 11:07

  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
复制代码





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