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

248
stitchineer

У меня есть серия файлов с номерами 1-20, и Терминал сортирует их так:

episode1.txt episode10.txt episode11.txt episode12.txt 

Я хочу переименовать файлы 1-9, вставив 0 перед номером. Мой код следующий:

for file in episode.txt do rename -vs "episode"* "episode0"* done 

Я также попробовал команду 'mv', но она не работает. У кого-нибудь есть предложения? заранее спасибо

1

1 ответ на вопрос

0
8bittree

Чтобы перечислить последовательность, используйте вместо .

Поскольку все ваши файлы имеют очень похожее имя, мы можем использовать раскрытие параметра, чтобы отключить префикс episodeпри его замене на episode0.

Полная команда выглядит так:

for file in episode.txt do mv "$file" "episode0$" done 

$является расширением параметра, которое в этом случае расширяет параметр file, удаляя при этом шаблон с самым коротким префиксом, который соответствует episode.

Похожие вопросы