io - 如何从价值约 800gb 的文本文件中查找和删除重复的字符串?
问题描述
我有一个价值约 800gb 的文本文件数据集,总共有大约 50k 个 .txt 文件。
我想从这些文件中制作一个主 .txt 文件,并从所有 txt 文件中删除所有重复的行。
我找不到一种方法来做到这一点,我的电脑不会需要几个月的时间来处理,理想情况下我希望它保持不到一周。
解决方案
sort -u <data.txt >clean.txt
您只需要一个大磁盘。
sort
非常高效:它会自动将文件拆分为可管理的部分,分别对每个部分进行排序,然后将它们合并(可以在 O(N) 时间内完成);并且在合并时,它将丢弃被骗者(由于-u
选项)。但是您至少需要输出文件的空间,加上所有中间文件的空间。
推荐阅读
- ionic3 - 在ionic3中加载应用程序后,以前的navParam数据丢失了吗?
- vue.js - 如何使用 vue test utils 触发修改事件?
- vue.js - vuex typeError中的vue-progressbar
- json - Nunjucks 模板引擎中的动态标题和描述
- mysql - 无法在程序中连接到 MySQL 服务器数据库 [VB]
- ios - NSKeyedUnarchiver.unarchiveObjectWithFile 在加载从不同目标创建的类时崩溃
- python - 如何使用两个用户输入来简化 if elif 代码?
- java - 实现设计模式和 Spring MVC
- java - Spring JPA - 一对多 - 重新育儿
- c# - 如何在实体框架配置中播种动态数据