从另一个大文件find匹配?

我有两个电子邮件列表。 一个是包含10万行的电子邮件地址的换行符分隔文件,第二个文件包含电子邮件,date,ipaddress换行符。 它有4M行,并包含我不关心的重复。

grep -f fileA.txt fileB.txt在fileA.txt是100或1000行的testing文件但是100k时没有任何地方。

我打开perl以及:)

当面对这样的事情时,我不能像埃里克所说的那样把所有的文件都存储在一个数组中,我采取了一个非常规的方法。 每个文件都被导出到数据库中的一个单独的表(我喜欢这个部分的Perl),并通过SQL查询获得所需的结果。

您可以通过使用-F选项来加快速度,以便search固定string。

 grep -Ff fileA.txt fileB.txt 

你有没有时间testing? 什么时间推断大文件告诉你?

sorting,然后比较他们? 这应该工作。

我正在假设Linux。 我会尝试创build一个虚拟磁盘 ,并将其中的两个文件。 这可能是最快的尝试。 把它放在fstab中,然后做一个mount / mnt来设置它:

 ramdisk /mnt tmpfs mode=1777,size=1G 

在perl中:

 #!/usr/bin/perl -w my ($emailfile, $file2); if ( open ( $emailfile, '/path/file') ) { my @emails = split(/\n/, $emailfile); if ( open ( $file1, '/path/file') ) { foreach my $email ( @emails ) { while ( <$file2> ) { if ( $_ =~ /$email/) print $_; } } } }