Мне нужно перебирать файлы, чтобы изменить их имена сразу, используя git bash.
Мои файлы просто названы в таком порядке.
- (1) .mp3
- (2) .mp3
- (3) .mp3
- (4) .mp3
- (5) .mp3
- (6) .mp3
- ... до (300) .mp3
Мне нужно создать программу для переименования файлов в зависимости от условия, чтобы разделить их на следующие главы.
- 1_chapter-1.mp3
- 2_chapter-1.mp3
- 3_chapter-1.mp3
- 4_chapter-1.mp3
- 5_chapter-1.mp3
- 6_chapter-1.mp3
- глава-2, глава-3, глава-4, глава-5 и т. Д.
Итак, я сделал оператор if, чтобы включить его в оператор цикла, но в моем операторе if произошла ошибка.
например asume f = "(9) .mp3"
if [ ${f//[!0-9]/} <= 10]; then
echo "rename to " + ${f//[!0-9]/} "_chapter-1"
elif [ ${f//[!0-9]/} <= 20] && [ ${f//[!0-9]/} > 10 ]; then
echo "rename to " + ${f//[!0-9]/} "_chapter-2"
elif [ ${f//[!0-9]/} <= 30] && [ ${f//[!0-9]/} > 20 ]; then
echo "rename to " + ${f//[!0-9]/} "_chapter-3"
.... etc
else
echo "do nothing"
fi
bash: [: missing `]'
do nothing
Надеюсь, это достаточно откроет то, что я ищу.
Теперь я не знаю, почему он всегда давал один и тот же результат «ничего не делать», как показано в коде.
Как правильно выполнить одну и ту же цель для имен файлов от 1 до 10 (указатель + глава-1), от 11 до 20 (указатель + глава-2), от 12 до 30 (указатель + глава-3) и так, как показано в списке переименования выше.
примечание:
главы не равны, так что, возможно, глава-1 имеет 10 mp3-файлов, в то время как глава-11 имеет, например, 12 или 50 mp3.