LINUX.ORG.RU

Специалистам по bash


0

0

Есть маленькая проблема, есть директория со вложенными директориями. Необходимо пропустить каждый файл через sha1sum и вывод завернуть в каждый отдельный файл с расширением sha1sum. То есть для 1.txt - 1.txt.sha1sum, для 2.txt - 2.txt.sha1sum. Пробовал

find . -type f -exec sha1sum {} >> SHA1SUMS \;
, но это создает один файл с хэшами всего подряд. Выручайте, гуру. Спасибо.

Ответ на: комментарий от sdio

Много exec-ов. Нужно:

find . -type f -not -name '*.sha1sum' | xargs -r sha1sum | sed -re 's/([^[:space:]]+)(.*)/echo \1 >\2.sha1sum' | sh

И, пока работает, молиться разным богам, чтобы в именах файлов ничего опасного не попалось:)

DonkeyHot ★★★★★ ()
Ответ на: комментарий от DonkeyHot

premature optimization is the root of all evil

эт ещё кнут говорил. И твой пост - яркое тому подтверждение.

gorilych ★★ ()
Ответ на: комментарий от ponch

Объясните, зачем вводить переменную, которая тут же используется ровно один раз? Это типа стильно или что?

dm1024 ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.