0

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

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

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

4

2 回答 2

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

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

于 2013-05-17T23:27:50.460 回答
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
于 2013-05-18T04:06:39.207 回答