Пакетный вывод MD5 с соответствующим именем файла в текстовый файл

Я пытаюсь вывести в текстовый файл контрольную сумму md5 каждого файла в папке в этом конкретном формате:

checksumhash1 *NameOfFile1.ext
checksumhash2 *NameOfFile2.ext
checksumhash3 *NameOfFile3.ext
etc...

вот пример вывода должен быть:

00c0eb18b7bfd2bf985451ae3ad5d68e *My Text File.txt
4935705ea05dabef98921b18aeeaadd3 *Another file.wmv

попробовал команде ниже, и что я могу сделать:

md5 -r * | tee checksum.txt

оттуда я потерял и не могу понять, как сделать вывод md5 соответствовать форматированию, которое мне нужно. Мне просто нужна буква " * " перед именем файла.

там есть гуру? =P

20
задан Weekender
30.11.2022 20:49 Количество просмотров материала 2928
Распечатать страницу

2 ответа

вы можете цепь выход вы уже получаете в sed (или другая программа редактирования потока), чтобы добавить дополнительный символ:

$ md5 -r * | sed 's/ / */'
69c3da625b4570f94889c9562453d394 *file1.ext
8046313ae98a6c9f1cb2c9957cdfbe7c *file2.ext
16250bebbd00e759138d09dd0cab0cb8 *file3.ext
d41d8cd98f00b204e9800998ecf8427e *file with space.ext

В этом случае sed команда просто заменяет первый [пробел] на [пробел] [звездочка]. Если требуется, чтобы выражение вело себя по-другому, его можно изменить.

2
отвечен tenorkev 2022-12-02 04:37

во-первых, вам не нужно tee, вы можете просто перенаправить в файл с помощью >. Теперь, добавив * требует некоторых уловок. Вот парочка:

  1. Perl

    md5 * | perl -pe 's/ / */' > checksum.txt
    

    так же, как и ответ tenorkev, просто сделано в Perl. The -p означает обрабатывать входные данные построчно, применять скрипт заданный -e и печать. The s/// является оператором подстановки и заменяет первый пробел пробелом, за которым следует *.

  2. чистая раковина

    md5 * | while read a b; do echo "$a *$b"; done > checksum.txt
    

    здесь while read a b прочитает каждую строку и разделит ее на пробелы на переменные $a и $b. Это означает, что будет $a и остальная часть строки будет переменной $b. Итак, печать (echo)$a *$b даст вам нужный выход.

0
отвечен terdon 2022-12-02 06:54

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх