Использование терминала для переименования определенных пронумерованных файлов

Использование терминала для переименования определенных пронумерованных файлов

У меня есть ряд файлов, пронумерованных от 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.

Связанный контент