У меня вопрос
У меня есть команда переименования, но после запуска переименования, начиная с 00, как начать с 01, пожалуйста, помогите мне
это команда, которую я использую
for i in *.mkv; do
new=$(printf "Movie - %02d.mkv" "$a")
mv -i -- "$i" "$new"
let a=a+1
done
Просто добавьте переменную ( a = 1
) в начале:
#!/bin/bash
a=1
for i in *.mkv; do
new=$(printf "Movie - %02d.mkv" "$a")
mv -i -- "$i" "$new"
let a=a+1
done
Вот одна строка, которую вы просили:
a=1; for i in *.mkv; do new=$(printf "Movie - %02d.mkv" "$a"); mv -i -- "$i" "$new"; let a=a+1; done
То же самое можно сделать и с помощью арифметической оценки bash . И , как правило, предпочтительнее let
встроенного в .
Например,
#!/bin/bash
a=1
for i in *.mkv; do
new=$(printf "Movie - %02d.mkv" "$a")
mv -i -- "$i" "$new"
((a++))
done
С другой стороны, если вы предпочитаете однострочную, команда rename
может сделайте это:
rename 's/\d+/sprintf("Movie - %02d", $&)/e' *.mkv