我有一个大文件 A(由电子邮件组成),每封邮件占一行。我还有另一个文件 B,其中包含另一组邮件,但采用 MD5 编码。
我应该使用哪个命令从文件 A 中删除 md5 文件 B 中存在的所有地址。
因此,如果文件 A 包含:
A
乙
C
文件 B 包含:
9d5ed678fe57bcca610140957afab571
f623e75af30e62bbd73d6df5b50bb7b5
3a3ea00cfc35332cedf6e5e9a32e94da
(这些是字母 BDE,但在 MD5 中)
那么文件 A 应该剩下:
A
C
任何帮助都将不胜感激!一定会有人来帮助我的
答案1
下面是一个可以完成这个任务的 Python 脚本:
#!/usr/bin/env python
import sys
import hashlib
with open(sys.argv[2]) as hashfile:
hashes = set(hashfile.read().splitlines())
with open(sys.argv[1]) as emailfile:
for email in emailfile:
email = email.rstrip('\n')
md5 = hashlib.md5()
md5.update(email)
if md5.hexdigest() not in hashes:
print email
将文件的名称作为参数传递给它(例如python whatever_name_you_save_it_as.py file_A file_B
),它将打印您想要的输出。