Как использовать regex кванторы для переименования нескольких файлов с zmv?

У меня есть следующие файлы в единственном каталоге:

1-1 - different text for each file here.txt
1-2 - different text for each file here.txt
.
.
1-9 - different text for each file here.txt
1-10 - different text for each file here.txt
1-11 - different text for each file here.txt
1-12 - different text for each file here.txt
.
.


Я хочу переименовать файлы внезапно (использование zmv выполнение в zsh) к:

1-01 - different text for each file here.txt
1-02 - different text for each file here.txt
.
.
1-09 - different text for each file here.txt
1-10 - different text for each file here.txt
1-11 - different text for each file here.txt
1-12 - different text for each file here.txt


Вот то, что я попробовал: zmv '1-([0-9])(*)' '1-0$1$2'


Это приводит к следующим именам файлов:

1-01 - different text for each file here.txt
1-02 - different text for each file here.txt
.
.
1-09 - different text for each file here.txt
1-010 - different text for each file here.txt
1-011 - different text for each file here.txt
1-012 - different text for each file here.txt
.
.

Таким образом, я думал, что изменю шаблон находки на zmv '1-([0-9]{1})(*)' '1-0$1$2' для соответствия только файлам единственной цифре после дефиса но это не работает (я просто добираюсь zmv:232: no matches found: 1-([0-9]{1})(*)).

Что я делаю неправильно? Это ровное возможное использование zmv или если я использую что-то как sed в a for цикл или что-то как этот?

4
задан 15.06.2016, 23:20

1 ответ

Это должно работать на Вас:

zmv '1-([0-9])( *)' '1-0$1$2'

или

zmv '1-([0-9])([^0-9]*)' '1-0$1$2'

Просто необходимо заставить соответствие включать только одну цифру, сопровождаемую пространством или нецифрой. С путем у Вас был он, это соответствовало одной цифре, сопровождаемой чем-либо.

4
ответ дан 07.12.2019, 20:44

Теги

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