CSV B 中的电子邮件不在 CSV A 中

CSV B 中的电子邮件不在 CSV A 中

我有两个 CSV 电子邮件地址列表(列表 A 和 B)。我们的营销人员不小心将一封电子邮件发送给了列表 A 中的人,而不是在发送之前合并两个列表。

需要向列表 B 中但不在列表 A 中的人员发送电子邮件。

我如何才能找出哪些电子邮件在列表 B 中而不在列表 A 中?我编写了一个 PHP 脚本,但是为了教育目的,当营销人员再次发生同样的事故时,我想知道是否有 Linux 命令可以执行此操作,而不是运行 PHP 脚本。(我知道我可以直接运行脚本,但我确信有更好的方法)。

我找到了以下解决方案,但是它合并了列表,而不是显示哪些电子邮件在列表 B 中而不在列表 A 中: 如何合并两个 CSV 文件?

答案1

你可以尝试

cat {A,A,B}.csv | sort | uniq -u

cat 打印出两个文件的内容,sort对输出进行排序(显然),并uniq -u删除所有重复的条目(仅保留出现一次的条目),如果其中一个列表中有重复的条目,则当然会被删除,因此您必须事先确保不会删除。正如 Ben Voigt 在评论中指出的那样,您必须按cat两次 A 才能确保删除其中的每个条目。

您可以附加>> C.csv到命令行以将内容写入文件。

cat {A,A,B}.csv | sort | uniq -u  >> C.csv

答案2

您可以导入到 Excel/OpenOffice 等。

  • 将两个列表合并为一个。(将两个列表粘贴到同一列中)

  • 选择此列中的所有地址。

  • 使用conditional formatting,例如仅突出显示独特的值。

  • sort通过该条件格式。

相关内容