Скрипт Bash для архивирования файлов, начинающихся с одинаковых символов, и присваивает им имена в зависимости от имени файла - PullRequest
0 голосов
/ 24 октября 2019

Я экспортировал много изображений в папку и хотел бы сгруппировать и сжать их в соответствии с их именем, а также присвоить имя zip-файлу в соответствии с именем файла изображений, например:

foretagshus1.jpg;foretagshus2.jpg;foretagshus3.jpg -> foretagshus.zip

annathus1.jpg;annathus2.jpg;annathus3.jpg -> annathus.zip

У меня есть возможность поставить номер в качестве префикса вместо суффикса, если это облегчает задачу. Я новичок в bash и сценариях в целом, поэтому любая помощь будет оценена.

1 Ответ

0 голосов
/ 24 октября 2019

Предполагая, что можно перебирать имена изображений, вы можете запустить следующую логику

  • Для каждого изображения
    • Найти ZIP-файл (суффикс полосы, номер полосы, добавить. zip)
    • Если ZIP существует, пропустите
    • Создать ZIP-файл

С

for file in *.jpg ; do
   bb=$(echo $file | sed -e 's/[0-9]*.jpg$//' )
   if [ -f "$bb.zip" ] ; then continue ; fi
   # Create zip file for all files with this prefix, and numeric suffix.
   echo "Building: $bb.zip"
   zip $bb.zip $bb[0-9]*.jpg
done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...