gpt4 book ai didi

perl - 打印 10GB 文件的唯一行

转载 作者:行者123 更新时间:2023-12-04 01:38:33 29 4
gpt4 key购买 nike

我有一个包含 2 亿行的 10GB 文件。我需要获取此文件的唯一行。

我的代码:

 while(<>) {
chomp;
$tmp{$_}=1;
}
#print...

我只有2GB内存。我怎么解决这个问题?

最佳答案

正如我对大卫的回答所评论的那样,数据库是要走的路,但一个不错的可能是 DBM::Deep 由于其纯 Perl 且易于安装和使用;它本质上是一个绑定(bind)到文件的 Perl 哈希。

use DBM::Deep;
tie my %lines, 'DBM::Deep', 'data.db';

while(<>) {
chomp;
$lines{$_}=1;
}

这基本上是您已经拥有的,但哈希现在是一个与文件(此处为 data.db)相关联的数据库,而不是保存在内存中。

关于perl - 打印 10GB 文件的唯一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10021927/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com