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

[文本处理] 批处理如何快速删除大文本文件里面的多余重复行(重复行只保留一行)?

本帖最后由 pcl_test 于 2016-11-3 16:49 编辑

有a.TXT, 大小为280M,里面有2800万行的数字或者字母或者特殊符号,
每行最多有12个字符,最少有8个字符!其中有很多重复行。

我想删除重复行中的一行,保留另一行。简单说就是二行留一行。

内容举例如下:
aaaaaaaaaaaa
bbbbbbbb
=+*&^%#$@/
ddddddddd
aaaaaaaaaaaa
ddddddddd
eeeeeeee
,.qdp{}?#&=
@#$!()[]-=@
gggggggg
hhhhhhhhh

显然
aaaaaaaaaaaaddddddddd,这2行出现了2次重复,处理后相同的行只保留其一,
其它的行不处理,保留。
将处理后的结果放在B.txt里面。
结果如下:
aaaaaaaaaaaa
bbbbbbbb
=+*&^%#$@/
ddddddddd
eeeeeeee
,.qdp{}?#&=
@#$!()[]-=@
gggggggg
hhhhhhhhh

我试过很多批处理都不行,包括本站搜索得来的批处理,要么速度非常非常慢,无法忍受。
要么无法运行,黑窗口、b.txt为0字节。

还试过很多软件,
【如(Replace Pioneer),文件太大,打不开。】,
【(UltraEdit),排序时提示错误。】,
【(TXT 重复行删除工具 v1.1.exe),运行后半个小时无响应】,
【(文本重复去除器.exe),提示:请稍等,正在去重复。运行了12个小时后,我看到,
2800W行,只对比了10W多行。运行十天也对比不完啊】。

我这个280M的大文件是把很多txt小文件合并得来的,在合并之前,有没有什么方法比对这些小的txt文件中间
有没有重复行并删一行留一行呢?
反正用什么方法都可以!分割、比对、合并,其它软件(使用方法),只要达到目的就行!!!

怎么办啊!!! 请各位老大,各位高手 斑竹 显身 吧!!!

回复 12# cm535


Perl的效果如何,试了没?

TOP

本帖最后由 asnahu 于 2011-7-27 20:26 编辑

我这没法测试处理这么大的文件到底需要多长时间,需要注意的是机器的硬件环境是很重要的。

TOP

回复 12# cm535

我2楼的回答里不是有更加高效的方法了吗,要认真看啊

TOP

有些字符可能删除了,比如行首空格,空白行……

TOP

asnahu老大,我用你的(gawk "!a[$0]++"<a.txt>b.txt)这个代码,运行了7个小时,得到了b.txt!
可我现在有个疑问,我原来的a.txt,大小为280M,删除重复行后,b.txt的大小变成了198M。我总觉得有问题,我的重复行也不至于有接近100M要删除啊!批处理在运行时,因为没有如何提示,看也看不出来,纠结啊!!!

TOP

七楼的老大,全能字符串替换机我已经下下来试过了,昨晚运行了一夜,早上起来看,还是像不响应的样子,没有任何变化,也没有提示!可能是文件太大了!

TOP

回复 8# cm535


试试Perl速度如何?
http://bbs.bathome.net/thread-12675-1-1.html

TOP

awk处理行是非常快的了

TOP

asnahu老大,我试了一下,处理30M文件很快,280M的现在还在处理,将近2小时了,还没有结束,
不知得多长时间?先谢谢了!!!

TOP

用全能字符串替换机
试试看,但是要自已设置规则!

TOP

  1. gawk "!a[$0]++"<a.txt>b.txt
复制代码
看这样行不行

TOP

本帖最后由 cm535 于 2011-7-26 13:21 编辑

我的系统里有gawk.exe,请问你给的这个代码我怎么用。
  1. gawk "!a[$0]++" FILE
复制代码
我的文件名是a.txt,重新生成的文件名是b.txt。

请老大发中文,好吗?英文看不懂啊!

你给的批处理和 a.txt,我放在了d:\下,运行后迅速关闭了,无反应!

请问,你给的5个代码我都可以用吗?我怎么看不懂啊!

即没有源文件名,也没有新产生的文件名,我怎么用啊?请教请教!

多谢多谢!!!

TOP

系统要有gawk啊,下面就是解释嘛,哪里看不懂?

TOP

老大,俺看不懂啊!,四个代码各是什么意思啊?请详细告知为盼!!!多谢多谢!

TOP

返回列表