Lidando com dados hash duplicados no arquivo de texto - mantendo uma linha exclusiva e excluindo duplicatas

0

Graças a esse fórum, consegui processar um arquivo de texto grande contendo nomes de arquivo e hashes e terminar com uma lista de arquivos com hashes idênticos, conforme mostrado abaixo:

file_35.txt 8208ad321576b521b23b07b9ba598e5c43b03ec4172c96fdbd35a858ec205ae6
file_87.txt 8208ad321576b521b23b07b9ba598e5c43b03ec4172c96fdbd35a858ec205ae6
file_32.txt aaf6b8c4a95d0e8f191784943ba1ea5c0b4d4baab733efe8ceb8b35478b6afd2
file_58.txt aaf6b8c4a95d0e8f191784943ba1ea5c0b4d4baab733efe8ceb8b35478b6afd2
file_89.txt aaf6b8c4a95d0e8f191784943ba1ea5c0b4d4baab733efe8ceb8b35478b6afd2

Desejo DELETAR linhas que contenham hashes duplicados para que eu acabe com um arquivo de texto contendo hashes exclusivos, conforme abaixo:

file_35.txt 8208ad321576b521b23b07b9ba598e5c43b03ec4172c96fdbd35a858ec205ae6
file_32.txt aaf6b8c4a95d0e8f191784943ba1ea5c0b4d4baab733efe8ceb8b35478b6afd2

Assim que isso for feito, poderei criar scripts para mover e excluir os arquivos que quero salvar e os que eu quero excluir.

    
por speld_rwong 23.11.2016 / 18:31

1 resposta

1

Se o seu arquivo já está classificado, que tal:

uniq --skip-field=1 file

caso contrário, você pode classificar seu arquivo primeiro e depois usar uniq :

sort -k2 file | uniq --skip-field=1

Saída:

file_35.txt 8208ad321576b521b23b07b9ba598e5c43b03ec4172c96fdbd35a858ec205ae6
file_32.txt aaf6b8c4a95d0e8f191784943ba1ea5c0b4d4baab733efe8ceb8b35478b6afd2
    
por 23.11.2016 / 19:17