Я использую md5deep чтобы попробовать взять список хэшей md5 из списка файлов (примерно 100 000 хэшей), и я сравниваю их со списком хэшей NSRL (текстовый файл 15 ГБ).
Я пытаюсь выполнить одну задачу:
Вывести хэши из моих 100000, которые не соответствуют хешам в списке хэшей NSRL.
Мне сложно понять, как правильно передать 100000 хэшей. Вот что у меня есть:
md5deep -e -x NSRLFile.txt -c md5.csv
md5.csv - это просто хэши, разделенные линиями перехода. На самом деле это не csv.
Теоретически я мог бы cat md5.csv и передать каждую строку в
md5deep -e -x NSRLFile.txt -a $line
но я бы хотел этого избежать, если смогу использовать некоторые функции программы.
Я понимаю, что это скорее вопрос "RTFM", но я просмотрел руководство и все еще не понимаю, как это сделать.
Если я правильно понимаю формат, эта команда должна дать желаемый результат:
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
займет второй столбец файла, разделенный ,
, затем удалите все "
символов, преобразуйте все хеши в нижний регистр и отсортируйте их.