如何从 ~800gb 的文本文件中查找和删除重复的字符串?
How can I find & delete duplicate strings from ~800gb worth of text files?
我有一个包含约 800gb 文本文件的数据集,总共有大约 50k 个 .txt 文件。
我想通过这些文件创建一个主 .txt 文件,并从所有 txt 文件中删除所有重复行。
我找不到一种不会让我的计算机花费数月来处理的方法,理想情况下我希望将其保持在一周内。
sort -u <data.txt >clean.txt
您只需要一个大磁盘。
sort
非常高效:它会自动将文件拆分为可管理的部分,分别对每个部分进行排序,然后合并它们(这可以在 O(N) 时间内完成);合并时,它将丢弃重复项(由于 -u
选项)。但是您至少需要输出文件的 space,以及所有中间文件的 space。
我有一个包含约 800gb 文本文件的数据集,总共有大约 50k 个 .txt 文件。
我想通过这些文件创建一个主 .txt 文件,并从所有 txt 文件中删除所有重复行。
我找不到一种不会让我的计算机花费数月来处理的方法,理想情况下我希望将其保持在一周内。
sort -u <data.txt >clean.txt
您只需要一个大磁盘。
sort
非常高效:它会自动将文件拆分为可管理的部分,分别对每个部分进行排序,然后合并它们(这可以在 O(N) 时间内完成);合并时,它将丢弃重复项(由于 -u
选项)。但是您至少需要输出文件的 space,以及所有中间文件的 space。