Linux 检查重复的电子邮件并将其从文件中删除

Linux 检查重复的电子邮件并将其从文件中删除,linux,shell,sed,Linux,Shell,Sed,我有两个文件,email_list1.txt;电子邮件_list2.txt。我想从email_list1文件中删除email_list2文件中存在的所有电子邮件 最后,我想让email_list1没有email_list2中存在的email地址 电子邮件列表1和电子邮件列表2仅包含电子邮件地址 例如: 电子邮件列表1:{name1@email.com ; name2@email.com ; name3@email.com ; name4@email.com ; name5@email.com ;

我有两个文件,email_list1.txt;电子邮件_list2.txt。我想从email_list1文件中删除email_list2文件中存在的所有电子邮件

最后,我想让email_list1没有email_list2中存在的email地址

电子邮件列表1和电子邮件列表2仅包含电子邮件地址

例如:

电子邮件列表1:{name1@email.com ; name2@email.com ; name3@email.com ; name4@email.com ; name5@email.com ;name6@email.com;等等……}

电子邮件列表1:{name2@email.com ; name3@email.com ; name4@email.com;等等……}

那么,有没有办法用Linux命令实现这一点? 谢谢

使用grep的“-v”标志反转匹配

$ cat file1
name1@email.com
name2@email.com
name3@email.com
name4@email.com

$ cat file2
name2@email.com
name4@email.com

$ grep -v -f file2 file1
name1@email.com
name3@email.com

$ grep -v -f file2 file1 > new-file

$ cat new-file
name1@email.com
name3@email.com

您可以使用
grep-f file1 file2
。它会将一个文件与另一个文件进行比较。您是否在谈论真实的电子邮件(例如,在mbox文件中),或电子邮件地址列表?@fedorqui:此命令仅允许比较两个文件,但如何从电子邮件列表1文件中删除电子邮件列表2文件中存在的电子邮件地址。@ShiDoiSi:不,仅是txt文件中的电子邮件列表您的文件格式不利于传统的面向行的Unix工具的自动管理。将文件格式更改为每行一个电子邮件地址,问题就变得无关紧要了。