我在用md5deep尝试从文件列表(大约 100,000 个哈希值)中获取 md5 哈希值列表,然后将它们与 NSRL 哈希值列表(15gb 文本文件)进行比较。
我正在尝试完成一件事:
输出我的 100,000 个哈希值中与 NSRL 哈希列表中的哈希值不匹配的哈希值。
我不知道如何正确传递 100,000 个哈希值。以下是我所拥有的:
md5deep -e -x NSRLFile.txt -c md5.csv
md5.csv 只是哈希值,以断线分隔。它实际上不是 csv。
理论上我可以 cat md5.csv 并将每一行导入
md5deep -e -x NSRLFile.txt -a $line
但如果我可以使用该程序的某些功能,我想避免这种情况。
我知道这更像是一个“RTFM”的问题,但是我已经阅读过手册,但仍然不知道该怎么做。
答案1
如果我正确理解了格式,该命令应该会给出所需的结果:
comm -23 <(cat md5.csv | tr A-F a-f | sort) <(cat NSRLFile.txt | cut -f2 -d, | tr -d '"' | tr A-F a-f | sort)
这将输出第一个文件中存在但不在第二个文件中的哈希值。该-2
命令comm
将跳过仅存在于第二个文件中的行,并将-3
跳过仅存在于第一个文件中的行。
cat md5.csv | tr A-F a-f | sort
将所有哈希值转换为小写并对其进行排序。
cat NSRLFile.txt | cut -f2 -d, | tr -d '"' | tr A-F a-f | sort
将获取文件的第二列(以 分隔),
,然后删除所有"
字符,将所有哈希值转换为小写并对其进行排序。