У меня есть много файлов в этом формате:
##.## - File name.mp4
Я хочу переименовать их к:
s##e##.mp4
Это - то, что я придумал:
rename -n "s/^(\d{2})\.(\d{2}).*/s$1e$2.mp4/"
Это работает, когда я протестировал его на http://regexr.com/, но когда я выполняю команду на своей установке Ubuntu 12.04, все мои файлы переименованы к se.mp4
Таким образом, похоже, что группы игнорируются или не вводятся или что-то вдоль тех строк. Я пропускаю что-то ослепляюще очевидное, или что-то еще продолжается?
Я закончил тем, что использовал pyRenamer, и это работало замечательно, но я все еще хотел бы знать почему rename
не работает правильно.
Аплодисменты и спасибо за любую справку можно дать мне.
Я думаю, возможно, что Ваше использование двойных кавычек позволяет оболочке расширяться $1
и $2
$ rename -nv "s/^(\d{2})\.(\d{2}).*/s$1e$2.mp4/" *.mp4
12.34 File name.mp4 renamed as se.mp4
тогда как с одинарными кавычками вокруг переименовать выражения
$ rename -nv 's/^(\d{2})\.(\d{2}).*/s$1e$2.mp4/' *.mp4
12.34 File name.mp4 renamed as s12e34.mp4