Переименуйте файл, чтобы переместить номер версии с конца на начало


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

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


Я вижу пробел в регулярном выражении вашей команды переименования. Это должно быть там, и если так, то должно быть сброшено с \?
DarenW

@darenw: пробелы не нужно экранировать в регулярных выражениях.
Гравитация

Ответы:



1

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

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

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

's/^(.+?) (\d+\.\d+) /$2 $1 /'
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.