Perl:如何提取文本文件的唯一条目

时间:2014-12-05 11:59:39

标签: perl bigdata duplicate-removal

我完全是Perl的初学者。我有一个大文件(大约100 G),看起来像这样:

 domain, ip
 "www.google.ac.",173.194.33.111
 "www.google.ac.",173.194.33.119
 "www.google.ac.",173.194.33.120
 "www.google.ac.",173.194.33.127
 "www.google.ac.",173.194.33.143
 "apple.com., 173.194.33.143
 "studio.com.", 173.194.33.143
 "www.google.ac.",101.78.156.201
 "www.google.ac.",101.78.156.201

所以基本上我有1个重复的行,2个具有不同域的ip,3个具有不同ips的域。我想从文件中删除重复的行(具有相同域,IP对的行)。

**我已经回顾了同一个问题的其他答案,但没有一个解决我的大文件问题。

有没有人知道如何在PERL中做到这一点?或任何更优化语言的建议?

1 个答案:

答案 0 :(得分:0)

最简单的方法是一次读取一行文件并使用每一行作为哈希的键。但是,您必须有一次内存来存储每个唯一的行。没有解决这个问题。

这是从shell运行的单线程:

perl -ne '$lines{$_}++; END { print keys %lines }' filename