我有两个带有电子邮件地址的文件(每行一个):file1和file2。
如何删除file2中也存在的所有电子邮件?寻找一个bash答案,但任何其他脚本语言都可以。
如果有帮助,每个文件中只有唯一的电子邮件地址。
答案 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