检查电子邮件地址列表与其他列表

时间:2013-05-17 22:28:35

标签: string bash

我有两个带有电子邮件地址的文件(每行一个):file1和file2。

如何删除file2中也存在的所有电子邮件?寻找一个bash答案,但任何其他脚本语言都可以。

如果有帮助,每个文件中只有唯一的电子邮件地址。

2 个答案:

答案 0 :(得分:1)

join -v1 <(sort file1) <(sort file2)

这告诉join打印file1中未出现在file2中的行(电子邮件)。它们必须进行排序,而<(sort ...)

答案 1 :(得分:0)

如果您因任何原因必须保留订单并希望通过考虑区分大小写和回车(^ M)而过于复杂,您可以尝试:

perl -e '%e=();while(<>){s/[\r\n]//g;$e{lc($_)}=1}open($so,"<","file1");while(<$so>){s/[\r\n]//g;print "$_\n" if(!exists($e{lc($_)}))}close($so)' file2