Назад | Перейти на главную страницу

Передайте текстовый файл хешей MD5 в md5deep

Я использую 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 займет второй столбец файла, разделенный ,, затем удалите все " символов, преобразуйте все хеши в нижний регистр и отсортируйте их.