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

[文本处理] 批处理如何查找/提取txt文本里第一列内容相同的行

本帖最后由 pcl_test 于 2016-11-25 08:26 编辑

有一个文本是TXT由多个TXT文档合并来,有7MB之多,因为里面有很多重复的数据想把重复数据筛选出来,请问这个代码该如何写》?
文本样式:
A.TXT
ADLL51A111110092,2011/11/21,14:51:19
AGCCDPC111110092,2011/11/21,14:51:24
AGCJDPB111110086,2011/11/21,14:51:32
ADC10Z111110096,2011/11/21,14:51:33
ADLL51A111110043,2011/11/21,14:55:10
AGCCDPC111110043,2011/11/21,14:55:11
AGCJDPB111110028,2011/11/21,14:55:12
ADLL51A111110092,2011/11/21,14:55:13
ADLL51A111110017,2011/11/21,14:55:18
其中红色是出现重复的,时间日期忽略不计,筛选结果输出到B.TXT告诉那些是相同代码。谢谢!
输出到B.TXT格式
ADLL51A111110092,2011/11/21,14:51:19
ADLL51A111110092,2011/11/21,14:55:13

谢谢版主老大,能给范例吗?寻着解决方法找到这里来,批处理不熟悉还请明示一下。谢谢!

TOP

版主老大好人,用你上面的代码处理7MB的文件10几分钟都还没有结束,处理过程中也没有提示。单个230K的文件速度倒是好快。。。

TOP

回复 8# yyykkkyyyy


这个正是要的结果,谢了,不过处理7MB的数据快要20分钟了,能快点就完美了

TOP

回复 9# powerbat


  代码运行好快有提示,不过运行出来的结果好像有重复不知道为什么。请看图片。第13行找到的数据和7792行数据是一样重复了

TOP

回复 7# CrLf


   谢谢版主老大。高人真多困扰了几天时间一下子就解决了这里真是一个学习的好地方,学无止境啊!

TOP

回复  jeeee


    你这是回复谁呢?
powerbat 发表于 2011-11-26 00:56


    抱歉给你的回复在12楼,谢谢

TOP

本帖最后由 jeeee 于 2011-11-26 01:49 编辑
回复  jeeee


你的意思是多条重复数据只记录一次吧?
好办,select * 改成 select DISTINCT  *
powerbat 发表于 2011-11-26 01:06



改好代码好用运行速度飞快,7MB的数据不到10秒出结果,不过把没有重复数据也找出来了,请再看看!红色是被找出的重复数据,黑色的是没有被重复的
PBFBEPA110610145,2011/5/22,22:34:35
PBFBEPA110610145,2011/5/22,22:36:13
PBFBEPA110750117,2011/8/1,22:12:01
PBFBEPA110750117,2011/8/1,22:12:04
PBFBEPB110220058,2011/3/27,5:02:00
PBFBEPB110220058,2011/3/27,5:02:11

PBFBEPB110240001,2011/3/13,3:23:32
PBFBEPB110240004,2011/3/13,3:27:18
PBFBEPB110240007,2011/3/13,3:22:06
PBFBEPB110240009,2011/3/13,3:29:24
PBFBEPB110240012,2011/3/20,3:57:53
PBFBEPB110240017,2011/3/13,3:18:50
PBFBEPB110240020,2011/3/13,3:20:20
PBFBEPB110240028,2011/3/20,0:36:58
PBFBEPB110240030,2011/3/20,0:37:37
PBFBEPB110240031,2011/3/20,0:38:10
PBFBEPB110240032,2011/3/20,0:39:44
PBFBEPB110240033,2011/3/13,3:24:02
PBFBEPB110240037,2011/3/13,3:21:43
PBFBEPB110240039,2011/3/20,23:20:47
PBFBEPB110240043,2011/3/20,23:18:07
PBFBEPB110240045,2011/3/20,23:11:49
PBFBEPB110240046,2011/3/20,5:31:22
PBFBEPB110240046,2011/3/20,23:11:35
PBFBEPB110240048,2011/3/13,3:25:39
PBFBEPB110240052,2011/3/20,23:14:16
PBFBEPB110240054,2011/3/13,3:16:51
PBFBEPB110240055,2011/3/13,3:28:01
PBFBEPB110240056,2011/3/13,3:14:37
PBFBEPB110240059,2011/3/13,3:13:48

TOP

本帖最后由 jeeee 于 2011-11-26 10:42 编辑
呵呵,高人多多, 显得回复我一句都欠妥,其实即便我水平低也还是有观点的。
本来嘛,bat也好 js也好 还是vb ...
yyykkkyyyy 发表于 2011-11-26 09:36



学无止境这才是乐趣,你提供的代码其实也达到了效果速度稍许慢而已,已经是我等菜鸟不可及的

TOP

你原文件中的重复数据可能正好是整行内容完全相同,即除了第一列外日期部分也相同,所以过滤后只显示了一条 ...
powerbat 发表于 2011-11-26 08:58



      是的有日期相同,不过二个数据之间的秒数最少间隔一秒。现在只能批处理去掉时间再过滤,是否能做到只找出相同数值,忽略后面的日期时间?

TOP

回复  jeeee


    现在就是这样做的。
你在原文件中搜索一下我的代码结果中你认为是非重复行的,比如 ...
powerbat 发表于 2011-11-26 11:52


仔细看了一下合并的TXT似乎有一些乱码及中文字,我重新合并再试一下,单个文件包没有问题并且输出了正确的结果。测试后再报告结果谢谢

TOP

回复 22# powerbat


老大出现抓狂的事,这个TXT文件一直报错:在此环境中允许操作!
请帮助分析!发现这个TXT数据后面的时间有部分是相同的会不会是这个原因?尝试将时间去掉也不行崩溃中

TOP

这个文件中没有重复行。
s = AdoRs.GetString(2, n, ",", "\r\n");
改成
s = "";
if (n>0) s = AdoRs.G ...
powerbat 发表于 2011-11-26 21:32


改好代码测试完美,非常感谢您的帮助

TOP

返回列表