Мои фотографии хранятся в папке с картинками даты имя папки, например, оригинальные пути и имена файлов:Как я могу переименовать несколько изображений с именами путей и переупорядоченными последовательностями в bash?
.../Pics/2016_11_13/wedding/DSC0215.jpg
.../Pics/2016_11_13/afterparty/DSC0234.jpg
.../Pics/2016_11_13/afterparty/DSC0322.jpg
Как переименовать фотографии в формате ниже, с непрерывными последовательностями и 4 -digit padding?
.../Pics/2016_11_13_wedding.0001.jpg
.../Pics/2016_11_13_afterparty.0002.jpg
.../Pics/2016_11_13_afterparty.0003.jpg
Я использую Bash 4.1, поэтому доступна только команда mv. Вот что у меня есть сейчас, но это не работает
#!/bin/bash
p=0
for i in *.jpg;
do
mv "$i" "$dirname.%03d$p.JPG"
((p++))
done
exit 0
и есть пробелы в исходной последовательности, потому что я удалил некоторые фотографии, но окончательная последовательность изображений должна быть непрерывной. – Armin
Вы написали какой-нибудь код? – codeforester
искать здесь для '[linux] найти xargs mv printf'. Вы должны найти много примеров, которые помогут вам решить вашу проблему. Вам нужно использовать '% 04d' внутри программы, которая знает, как оценить это место (' printf'). и вам нужно взять вывод команды и подставить ее в свою реальную команду (cmd-подзаголовок) с помощью '$ (printf ....)'. Удачи. – shellter