Групи захоплення ігноруються при перейменуванні файлів


10

У мене є декілька файлів у такому форматі:

##. ## - Назва файлу.mp4

Я хочу перейменувати їх на:

s ## e ##. mp4

Ось що я придумав:

перейменуйте -n "s / ^ (\ d {2}) \. (\ d {2}). * / s $ 1e $ 2.mp4 /"

Він працює, коли я тестував його на http://regexr.com/, але коли я запускаю команду на моїй установці Ubuntu 12.04, усі мої файли перейменовані наse.mp4

Так виглядає, що групи ігнорують чи не вставляють, або щось у цьому напрямку. Я пропускаю щось сліпуче очевидне чи щось інше відбувається?

Я в кінцевому підсумку використовував pyRenamer, і це чудово працювало, але я все одно хотів би знати, чому renameне працює належним чином.

Привіт і дякую за будь-яку допомогу, яку ви можете мені надати.

Відповіді:


14

Я думаю, можливо, ваше використання подвійних лапок дозволяє оболонці розширюватись $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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.