当前位置:  开发笔记 > 开发工具 > 正文

如何在两个非常大的文件中找到常用字符串?

如何解决《如何在两个非常大的文件中找到常用字符串?》经验,为你挑选了1个好方法。

我有两个非常大的文件(它们都不适合内存).每个文件在每一行都有一个字符串(其中没有空格,长度为99/100/101个字符).

更新:字符串不是任何排序顺序.
Update2:我在Windows上使用Java.

现在我想弄清楚找出两个文件中出现的所有字符串的最佳方法.

我一直在考虑使用外部合并排序来对两个文件进行排序然后进行比较,但我不确定这是否是最好的方法.由于字符串大多数都是相同的长度,我总是想知道为每个字符串计算某种哈希是否是个好主意,因为这样可以使字符串之间的比较更容易,但那意味着我必须存储哈希值计算我到目前为止从文件中遇到的字符串,以便稍后在将它们与其他字符串进行比较时可以使用它们.我无法确定最佳方式.我在寻找你的建议.

当您提出解决方案时,如果有超过2个文件并且必须计算出所有文件中出现的字符串,请说明解决方案是否有效.



1> Leonard..:

你还没有说过你正在做什么平台,所以我假设你正在使用Windows,但是在不太可能的情况下,你在Unix平台上,标准工具会为你做.

sort file1 | uniq > output
sort file2 | uniq >> output
sort file3 | uniq >> output
...
sort output | uniq -d


uniq -d删除单独出现的行,并仅打印重复行的单个副本.
推荐阅读
Gbom2402851125
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有