2

Как переименовать файл в linux, взять версию # с конца и переместить ее в начало. Например, у меня есть имя файла:

Random text - text 1.1 (SD).mp3

в

1.1 Random text - text.mp3

Прямо сейчас я могу получить номер версии, но не могу переместить его в начало, у меня есть что-то вроде:

rename -n 's/(\d{1}\.\d{1}) \(SD\).mp3/$1.mp3/' *.mp3

что дает мне

Random text - text 1.1.mp3

Я попытался добавить вторую группу выражений для соответствия началу файла, чтобы я мог поменять местами начало и конец, но потом ничего не происходит

2 ответа2

2

Ваше регулярное выражение должно выглядеть так:

rename -n 's/^(.*)(\d{1}\.\d{1})(.*)$/$2 $1$3/' *.mp3
1

Следующее должно работать:

's/^(.+?) (\d+\.\d+) \(SD\)/$2 $1/'

Или, если вы хотите сохранить (SD) часть:

's/^(.+?) (\d+\.\d+) /$2 $1 /'

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .