У меня есть следующие файлы в одном каталоге:
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
в цикле for
или что-то в этом роде?