Board logo

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

作者: beiwe    时间: 2020-7-5 15:38     标题: 如何用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
作者: went    时间: 2020-7-5 18:46

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

作者: beiwe    时间: 2020-7-5 20:27

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

回复 2# went


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

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

作者: beiwe    时间: 2020-7-5 21:40

回复 4# went


大神,按新的代码运行了后反而没有任何反应了呢
作者: went    时间: 2020-7-6 11:06

回复 5# beiwe


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




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