Remover linhas do arquivo que aparecem em outro arquivo MD5

1

Eu tenho um arquivo grande A (que consiste em e-mails), uma linha para cada e-mail. Eu também tenho outro arquivo B que contém outro conjunto de e-mails, mas no MD5.

Qual comando eu usaria para remover todos os endereços que existem no arquivo md5 B do arquivo A.

Então, se o arquivo A continha:

A

B

C

e o arquivo B continha:

9d5ed678fe57bcca610140957afab571

f623e75af30e62bbd73d6df5b50bb7b5

3a3ea00cfc35332cedf6e5e9a32e94da

(são as letras B D E, mas no MD5)

Em seguida, o arquivo A deve ficar com:

A

C

Qualquer ajuda seria muito apreciada! Alguém certamente irá aparecer e me ajudar

    
por Hamza Zbakh 06.03.2017 / 19:49

1 resposta

0

Aqui está um pequeno script Python que fará isso:

#!/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

Passe os nomes de seus arquivos como argumentos (por exemplo, python whatever_name_you_save_it_as.py file_A file_B ) e ele imprimirá a saída desejada.

    
por Joseph Sible 06.03.2017 / 20:56