# 求能够对多个TXT文本内容进行比对并去重的软件

**URL:** <https://meta.appinn.net/t/topic/36342>\
**Category:** 问题求助\
**Created:** [2022 年9 月 19 日 00:54 UTC](https://meta.appinn.net/t/topic/36342 "2022-09-19T00:54:51Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

作者： ![Test2022](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/t/b4bc9f/32.png) [@Test2022](https://meta.appinn.net/u/Test2022)\
发布日期： [2022 年9 月 19 日 00:54 UTC](https://meta.appinn.net/t/topic/36342/1 "2022-09-19T00:54:51Z")

</div>

求能够对多个TXT文本内容进行比对并去重的软件，文件数量较多  
在百度上面搜索了，发现：[https://blog.csdn.net/zhengzizhi/article/details/72615021](https://blog.csdn.net/zhengzizhi/article/details/72615021)  
咨询了作者，软件居然3500。。。

解决方案使用EmEditor，并设置足够大的虚拟缓存即可

---

<div class="post-metadata">

作者： ![xiaokonglong](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/xiaokonglong/32/908_2.png) [@xiaokonglong](https://meta.appinn.net/u/xiaokonglong)\
发布日期： [2022 年9 月 19 日 01:03 UTC](https://meta.appinn.net/t/topic/36342/2 "2022-09-19T01:03:42Z")

</div>

说的不够详细啊.

如果只是简单的比较去重, Beyond Compare 就足够了.

---

<div class="post-metadata">

作者： ![Test2022](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/t/b4bc9f/32.png) [@Test2022](https://meta.appinn.net/u/Test2022)\
发布日期： [2022 年9 月 19 日 01:42 UTC](https://meta.appinn.net/t/topic/36342/3 "2022-09-19T01:42:57Z")

</div>

文件数量较多

---

<div class="post-metadata">

作者： ![Kyun](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/k/e8c25b/32.png) [@Kyun](https://meta.appinn.net/u/Kyun)\
发布日期： [2022 年9 月 19 日 03:15 UTC](https://meta.appinn.net/t/topic/36342/4 "2022-09-19T03:15:21Z")

</div>

按行或者按文件這個自己寫也可以吧。

---

<div class="post-metadata">

作者： ![dangerace](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dangerace/32/16676_2.png) [@dangerace](https://meta.appinn.net/u/dangerace)\
发布日期： [2022 年9 月 19 日 03:19 UTC](https://meta.appinn.net/t/topic/36342/5 "2022-09-19T03:19:00Z")

</div>

你可以详细说说，最好举个例子，然后帮你想办法，或者给你个解决方案。

---

<div class="post-metadata">

作者： ![xml123](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/x/ba8739/32.png) [@xml123](https://meta.appinn.net/u/xml123)\
发布日期： [2022 年9 月 19 日 03:29 UTC](https://meta.appinn.net/t/topic/36342/6 "2022-09-19T03:29:47Z")

</div>

数据没大到机器吃不消的程度就合并、排序(sort)、去重(uniq)就行了，都是Linux自带的命令

---

<div class="post-metadata">

作者： ![fads\_ldsf](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/fads_ldsf/32/29647_2.png) [@fads\_ldsf](https://meta.appinn.net/u/fads_ldsf)\
发布日期： [2022 年9 月 19 日 03:34 UTC](https://meta.appinn.net/t/topic/36342/7 "2022-09-19T03:34:43Z")

</div>

这个我比较有发言权

基本的方法：  
进入cygwin环境 安装好gawk 软件包  
cat ./dir/\*.txt | awk ‘{if(a[$0]!=1){print};a[$0]=1;}’ \>去重后的文本.txt

这个是最快速的方法。  
如果你只想用perl语言

cat ./dir/\*.txt | perl -ne ‘{unless(exists $a{$\_}){print $\_};$a{$\_}=1;}’ \>去重后的文本.txt

上面只是去重复，

如果想要输出结果加上排序

cat ./dir/\*.txt | sort|uniq \>去重后的文本.txt

---

<div class="post-metadata">

作者： ![Test2022](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/t/b4bc9f/32.png) [@Test2022](https://meta.appinn.net/u/Test2022)\
发布日期： [2022 年9 月 19 日 09:07 UTC](https://meta.appinn.net/t/topic/36342/10 "2022-09-19T09:07:48Z")

</div>

请问有win10下面能用的软件吗，大概几十个G。。。

---

<div class="post-metadata">

作者： ![fads\_ldsf](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/fads_ldsf/32/29647_2.png) [@fads\_ldsf](https://meta.appinn.net/u/fads_ldsf)\
发布日期： [2022 年9 月 19 日 09:11 UTC](https://meta.appinn.net/t/topic/36342/11 "2022-09-19T09:11:33Z")

</div>

这个涉及到哈希运算的技术问题了。

1GB的文本，可能需要4GB以上的内存。

这么大的文件如果你要去重复，只有分治策略。

具体方法是分别对 a b c …z开头的行分别去重复

如果实在过大，按照 aa ab ac a1 a2 … zz分类

---

<div class="post-metadata">

作者： ![haitao](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/h/958977/32.png) [@haitao](https://meta.appinn.net/u/haitao)\
发布日期： [2022 年9 月 19 日 10:13 UTC](https://meta.appinn.net/t/topic/36342/12 "2022-09-19T10:13:19Z")

</div>

每行一个邮箱账号？  
那重新导入数据库，一个distinct就解决了

---

<div class="post-metadata">

作者： ![fads\_ldsf](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/fads_ldsf/32/29647_2.png) [@fads\_ldsf](https://meta.appinn.net/u/fads_ldsf)\
发布日期： [2022 年9 月 19 日 10:21 UTC](https://meta.appinn.net/t/topic/36342/13 "2022-09-19T10:21:07Z")

</div>

据我所知，mysql数据量破百万后，性能会急速下降  
内存哈希法是最快速。

不知道128GB内存+redis+(python /perl)是不是最快的方案

---

<div class="post-metadata">

作者： ![haitao](https://meta-edge.appinn.com/letter_avatar_proxy/v4/letter/h/958977/32.png) [@haitao](https://meta.appinn.net/u/haitao)\
发布日期： [2022 年9 月 19 日 10:23 UTC](https://meta.appinn.net/t/topic/36342/14 "2022-09-19T10:23:52Z")

</div>

sqlite都能支持千万。  
几亿的那些，可以采用分区表。mssql2005在64G内存的服务器，分100个区，对付10亿不是问题

---

<div class="post-metadata">

作者： ![kli2018](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/kli2018/32/22935_2.png) [@kli2018](https://meta.appinn.net/u/kli2018)\
发布日期： [2022 年9 月 19 日 12:02 UTC](https://meta.appinn.net/t/topic/36342/15 "2022-09-19T12:02:26Z")

</div>

EmEditor

---

<div class="post-metadata">

作者： ![dangerace](https://meta-edge.appinn.com/user_avatar/meta.appinn.net/dangerace/32/16676_2.png) [@dangerace](https://meta.appinn.net/u/dangerace)\
发布日期： [2022 年9 月 19 日 14:45 UTC](https://meta.appinn.net/t/topic/36342/16 "2022-09-19T14:45:51Z")

</div>

说不定这是一个好选择，去官网看了看，支持的大文件体积惊人！

 ![image](https://meta.appinn.net/uploads/default/original/3X/9/5/95ffb6d99c90a2f3fd2a0ddafa8d96b2345733e8.png)

有用户在介绍它的去重功能很牛逼  
[Emeditor – windows平台最强文本编辑器，没有之一 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/399559247)
