从INSANE BIG WORDLIST中删除重复项

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从INSANE BIG WORDLIST中删除重复项相关的知识,希望对你有一定的参考价值。

这样做的最佳方式是什么?这是一个250GB的文本文件,每行1个字

输入:

123
123
123
456
456
874
875
875
8923
8932
8923

需要输出:

123
456
874
875
8923
8932

我需要获得每个重复行的1个副本,如果有2个相同的行,则删除两个,只删除1,始终保持1个唯一行。

我现在应该做什么:

$ cat final.txt | sort | uniq > finalnoduplicates.txt

在屏幕上,这有用吗?我不知道,因为当我检查输出文件的大小时,它是0:

123user@instance-1:~$ ls -l
total 243898460
-rw-rw-r-- 1 123user 249751990933 Sep  3 13:59 final.txt
-rw-rw-r-- 1 123user            0 Sep  3 14:26 finalnoduplicates.txt
123user@instance-1:~$

但是当我检查运行此命令的屏幕的htop cpu值是100%。

难道我做错了什么?

答案

你可以使用sort来做到这一点。

$ sort -u final.txt > finalnoduplicates.txt

你可以进一步简化这一点,让sort完成所有这些工作:

$ sort -u final.txt -o finalnoduplicates.txt

最后,由于您的输入文件纯粹只是数字数据,您可以通过sort开关告诉-n,以进一步提高此任务的整体性能:

$ sort -nu final.txt -o finalnoduplicates.txt
sort's man page
   -n, --numeric-sort
          compare according to string numerical value

   -u, --unique
          with -c, check for strict ordering; without -c, output only the
          first of an equal run

   -o, --output=FILE
          write result to FILE instead of standard output

以上是关于从INSANE BIG WORDLIST中删除重复项的主要内容,如果未能解决你的问题,请参考以下文章

使用 Python 或 Map reduce 从 BIG 文件中删除不需要的记录

从 Big Query python API 调用返回的列列表中删除列

BIG QUERY SQL:如何在具有相同唯一键但访问期间不同的访问中查找不同的重复集?

从字符串中删除特定单词

2021-10-13:单词接龙。字典 wordList 中从单词 beginWord 和 endWord 的 转换序列 是一个按下述规格形成的序列:序列中第一个单词是 beginWord 。序列中最后

不执行的PL/SQL代码验证[重复]