perl – 打印10GB文件的独特行
发布时间:2020-12-15 21:41:24 所属栏目:大数据 来源:网络整理
导读:我有一个10GB的文件,有2亿行.我需要得到这个文件的唯一行. 我的代码: while() { chomp; $tmp{$_}=1; } #print... 我只有2GB内存如何解决这个问题? 解决方法 当我评论David的答案时,数据库是要走的路,但是一个好的可能是 DBM::Deep ,因为它的纯Perl,易于安
我有一个10GB的文件,有2亿行.我需要得到这个文件的唯一行.
我的代码: while(<>) { chomp; $tmp{$_}=1; } #print... 我只有2GB内存如何解决这个问题? 解决方法
当我评论David的答案时,数据库是要走的路,但是一个好的可能是
DBM::Deep ,因为它的纯Perl,易于安装和使用;它本质上是一个绑定到文件的Perl哈希.
use DBM::Deep; tie my %lines,'DBM::Deep','data.db'; while(<>) { chomp; $lines{$_}=1; } 这基本上是你已经拥有的,但哈希现在是一个与文件(这里是data.db)绑定的数据库,而不是保存在内存中. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |