我有两个文件。文件1有一堆电子邮件地址。文件2有域列表。
我想查找与域匹配的所有电子邮件地址(以及不匹配的电子邮件地址)
如果有人请让我知道我们如何才能做到这一点使用'grep'从终端。
File1.csv
abc@gmail.com
abc@fmail.com
abc@fb.com
abc@hotmail.com
abc@outlook.com
abc@live.com
File2
hotmail.com
live.com
fb.com
The output should be (and non-matching as well)
abc@fb.com
abc@hotmail.com
abc@live.com
Please consider the email file is too big and contains 2M emails to compare against 6k domains.
2条答案
按热度按时间kzmpq1sx1#
您可以使用-f从文件中读取模式:
v9tzhpje2#
在您的评论中,您尝试匹配以下固定模式:
@
在这种情况下,您可能需要在
File2
中每行的开头添加@
,以便将其用作固定模式。您可以通过以下方式执行此操作:
1.使用
sed
命令将@
添加到file2.txt中每行的开头。不要担心,不会错过与您的主文件,你说这是约2 M字段,我们正在保存输出到另一个文件名为
new-file.txt
1.使用
new-file.txt
文件运行-f选项grep命令,如下所示: