从文件中删除出现在另一个 MD5 文件中的行

从文件中删除出现在另一个 MD5 文件中的行

我有一个大文件 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),它将打印您想要的输出。

相关内容