Мне нужно к md5 имя файла каталога файлов

Я должен получить md5sum имени файла каталога. Возможно, что-то вроде:

mv *.html md5sum(*).html

Кто-либо может указать на меня в правильном направлении относительно того, какую команду я должен выполнить, чтобы сделать это?

0
задан 14 October 2016 в 05:12

1 ответ

Возможно, что-то как:

for i in *.html
do
    echo mv "$i" "$(md5sum <<<"${i%.html}" | awk '{print $1".html"}')"
done

${i%.html} в ударе содержание переменной i (текущее имя файла), с .html удаленный из конца. awk '{print $1".html"}' печатает первое поле вывода, с .html добавленный к нему. Нам нужно это с тех пор md5sum добавляет a - к выводу, так как это читает в из стандартного входа:

$ md5sum <<<foo
d3b07384d113edec49eaa6238ad5ff00  -
$ md5sum <<<foo | awk '{print $1}'
d3b07384d113edec49eaa6238ad5ff00

Пример:

$ for i in *.html
do
 echo mv "$i" "$(md5sum <<<"${i%.html}" | awk '{print $1".html"}')"
done
mv default.html de2b14ae7499f90736fc4a92327553a5.html
mv page.html 2adf521149526dde524f030851c7f903.html
mv post.html 0c0d03edf4e145ffd75eafb6d73deaa7.html

Удалите echo для фактического перемещения файлов, после того как Вы проверили, команда хорошо работает.

Если Вы хотите эффект echo -n, можно использовать это вместо этого:

for i in *.html
do
    echo mv "$i" "$(echo -n "${i%.html}" | md5sum | awk '{print $1".html"}')"
done
1
ответ дан 28 September 2019 в 10:37

Другие вопросы по тегам:

Похожие вопросы: