【发布时间】:2011-04-02 10:34:56
【问题描述】:
我有两个 3GB 的文本文件,每个文件大约有 8000 万行。它们共享 99.9% 的相同行(文件 A 有 60,000 行,文件 B 有 80,000 行)。
如何在两个文件中快速找到这些独特的行?是否有任何现成的命令行工具可以做到这一点?我正在使用 Python,但我想找到一种有效的 Pythonic 方法来加载文件并进行比较是不太可能的。
欢迎提出任何建议。
【问题讨论】:
-
你是说99.9%的文件是相同的,还是说99.9%的行是相同的(即同一行重复)?
-
你关心行的顺序吗? B 的所有行是否与 A 的顺序相同?可以重新排序,删除行吗?是否存在计数重要的重复行(A 有 n 次,B 有 n-b 次-> 差异是 b*line)
-
如果您询问“即用型命令行工具”,您可能需要指定操作系统。在大多数情况下,“diff”要么是原生的,要么是移植的。不过,我不能确定你想从你的问题中得到什么:也许在 Linux 上: sort --unique uniq1;排序 --unique uniq1; diff uniq[12].
-
平均每行多少字节?
-
@bstpierre,确切地说,两个文件中 99.9% 的行是相同的,但唯一的行随机分布在两个文件中。
标签: python file text diff compare