Группы получения проигнорированы при переименовании файлов

У меня есть много файлов в этом формате:

##.## - 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 не работает правильно.

Аплодисменты и спасибо за любую справку можно дать мне.

9
задан 8 March 2014 в 06:47

1 ответ

Я думаю, возможно, что Ваше использование двойных кавычек позволяет оболочке расширяться $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
12
ответ дан 16 November 2019 в 16:16

Другие вопросы по тегам:

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