最近遇到一个问题需要对百万级TXT文本进行对比去重处理 网上找了一圈小文件处理倒是方便excel也能搞,但文本太大了也没有好的工具处理

遂谷歌一番,偶然看见一前辈的解决方案,不敢独享便分享在这里希望也能帮助到你

问题简介:现有两个TXT文本,A.txt与B.txt,A.txt中有200万行信息,B.txt中有500万行信息,B.txt内容中包含了一部分A.txt中已存在的信息,现在需要将B与A中重复信息剔除掉并导出为C.txt使用。

这里简单做了个实例或许更为直观:

如何使用BAT批处理文件处理百万级TXT文本对比去重删除交集并输出唯一内容插图

解决方案:新建文件夹并将A.txt与B.txt拖入,在当前文件下新建xxx.bat文件,复制如下内容到xx.bat内并保存,编码选择为ANSI

(注:bat文件与待处理文本必须为同一文件夹)

<# :
cls
@echo off
rem 根据一个txt文本文件内给出的行内容,将另一个txt文本文件内与其相同/重复的行内容删除
set #=亿码酷站 &set @=YMKUZHAN.COM &set $=Q&set/az=0x173b954
title %#% %$%%$% %z% 或访问 %@%
cd /d "%~dp0"
powershell -NoProfile -ExecutionPolicy bypass "Invoke-Command -ScriptBlock ([ScriptBlock]::Create([IO.File]::ReadAllText('%~f0',[Text.Encoding]::Default))) -Args '%~dp0'"
echo;%#% %$%%$% %z% 或访问 %@%
pause
exit
#>
$path=$args[0];
$txtfile1=$path+'a.txt';
$txtfile2=$path+'b.txt';
$txtfile3=$path+'c.txt';
if(-not (test-path -liter $txtfile1)){Write-host ('"'+$txtfile1+'" not found');exit;};
if(-not (test-path -liter $txtfile2)){Write-host ('"'+$txtfile2+'" not found');exit;};
$text1=[IO.File]::ReadAllLines($txtfile1, [Text.Encoding]::Default);
$text2=[IO.File]::ReadAllLines($txtfile2, [Text.Encoding]::Default);
$dic=New-Object 'System.Collections.Generic.Dictionary[string,int]';
[System.Collections.ArrayList]$s=@();
for($i=0;$i -lt $text1.count;$i++){
if(-not $dic.ContainsKey($text1[$i])){$dic.Add($text1[$i], 1)};
};
for($i=0;$i -lt $text2.count;$i++){
if(-not $dic.ContainsKey($text2[$i])){[void]$s.add($text2[$i])};
};
[IO.File]::WriteAllLines($txtfile3, $s, [Text.Encoding]::Default);

效果还不出处理速度可观方便快捷!

亿码酷站-每日分享各类精品源码及实用教程!

查看更多教程

亿码酷站-PHP源码下载,网站模板下载站

云服务器推荐

发表回复

后才能评论

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源