У меня есть ряд файлов, пронумерованных от 1 до 20, и Терминал сортирует их следующим образом:
episode1.txt episode10.txt episode11.txt episode12.txt
Я хочу переименовать файлы 1-9, вставив перед номером 0. Мой код следующий:
for file in episode{1-9}.txt
do
rename -vs "episode"* "episode0"*
done
Я также пробовал команду 'mv', но она не работает. Есть ли у кого-нибудь предложения? Спасибо заранее
решение1
Чтобы перечислить последовательность, используйте {x..y}
вместо {x-y}
.
Поскольку все ваши файлы имеют очень похожие имена, мы можем использовать расширение параметра, чтобы отсечь префикс episode
и заменить его на episode0
.
Полная команда выглядит так:
for file in episode{1..9}.txt
do
mv "$file" "episode0${file#episode}"
done
${file#episode}
представляет собой расширение параметра, которое в данном случае расширяет параметр, file
удаляя при этом самый короткий шаблон префикса, соответствующий episode
.