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

[文本处理] 如何用BAT批处理文件对比剔除2个TXT文件带有特定重复行内容的行?

现在有A.txt和B.txt ,这2个TXT文件,
A.txt为主文件,(比如大小为1M,内有1万行IP地址信息,不带端口号),文本内容每行例如 110.39.175.2
B.txt为需要进行筛选的文本(内有3000行新的IP地址信息,带有端口号), 文本内容每行例如 110.39.175.2:5566

现在需要一个BAT文件,比对A,B 这2个txt文件,对B文件进行筛选,去掉所有和A有重复的行,输出C.txt  

注意:A,B 内容每行都是IP地址,B不同的是带有端口号,在筛选的时候需要忽略B文件的 : 和 端口号 后 在生成 C文本


范例

====文本A内容(IP地址),作为参考母版====比如有12行=======

110.39.175.2
113.53.53.138
155.138.133.21
103.89.24.4
176.110.154.59
136.244.101.170
103.28.121.58
106.54.219.223
141.164.58.56
150.138.106.80
155.138.131.165
139.99.91.22



====文本B内容(IP地址+端口,: 是IP和端口的分割符), 作为需要筛选的对象=====有5行,忽略:和端口号后,其中3行和A有重复=======


110.39.175.2:5566
113.53.53.138:8080
155.138.133.21:80
113.53.53.138:1080
152.138.183.25:8888



====输出文本C,在B剔除和文本A字段重复后的结果=============

113.53.53.138:1080
152.138.183.25:8888

照你这例子应该只有一行不重复
152.138.183.25:8888
  1. findstr /v /G:A.txt B.txt
复制代码

TOP

本帖最后由 beiwe 于 2020-7-5 20:28 编辑

回复 2# went


  谢谢大神回答
但是我刚刚试了一下你的批处理,有对比的过程,不过速度非常慢,最后也没有生成剔除后的结果后的 C.txt文件
还请大神们帮帮忙

TOP

回复 3# beiwe
加个重定向
  1. @echo off
  2. findstr /v /G:A.txt B.txt >C.txt
  3. pause&exit
复制代码

TOP

回复 4# went


大神,按新的代码运行了后反而没有任何反应了呢

TOP

回复 5# beiwe


    文件太大了,要等它运行完

TOP

返回列表