比较两个文件

我有两个非常大的名单。 他们都是本来在excel中,但更大的是一个电子邮件列表(约16万)其他信息,如他们的名字和地址等。而较小的是一个只有18000电子邮件的名单。

我的问题是从第一个包含第二个电子邮件地址的文档中删除所有18,000行的最简单方法是什么?

我在想正则expression式,也许有另一个应用程序,我可以使用? 我试过在网上search,但似乎没有太多具体的这一点。 我也尝试记事本++,但是当我试图比较这些大文件时,它冻结。

-先谢谢你!!

好问题。 我要解决这个问题的一个方法就是制作一个C ++程序[你可以将这个想法推断到你select的语言; 你从来没有提到你精通哪种语言]把小文件的每个项目读成一个string的vector。 首先,当然,使用Excel将文件保存为CSV而不是XLS或XLSX,它们将逗号分隔这些值,以便您可以更轻松地使用它们。 对于更大的列表,“另存为”只是电子邮件地址的副本,现在删除其他行。

然后,你可以打开更大的列表,并使用嵌套循环来检查是否应该输出到输出文件。 就像是:

 bool foundMatch=false; for(int y=0;y<LargeListVector.size();y++) { for(int x=0;x<SmallListVector.size();x++) { if(SmallListVector[x]==LargeListVector[y]) foundMatch=true; } if(!foundMatch) OutputVector.append(LargeListVector[y]); foundMatch=false; } 

这可能是部分伪代码,但是你明白了吗?

所以我读了一个论坛post: 在这里

= MATCH(B1,$ A $ 1:$ A $ 3,0)> 0

B列是大列表,有16万个input,列A是我需要删除的18000个列表。

我用它来匹配所有的东西,并在一个单独的列粘贴这个公式。 它会打印出错误或TRUE。 如果数据在两列都打印出来。

然后,因为我用excel吸,我把这个文本到Notepad ++,并search所有包含TRUE(匹配的情况下,因为在我的情况下,一些数据有真正的单词中没有上限的行)我标记这些行,然后下search,书签,我删除了书签的所有行。 把它贴回到excel和瞧。

我想感谢你们的帮助,并指引我在正确的方向:)