Grupy przechwytywania są ignorowane podczas zmiany nazw plików

10

Mam wiele plików w tym formacie:

##. ## - Nazwa pliku.mp4

Chcę zmienić ich nazwę na:

s ## e ##. mp4

Oto co wymyśliłem:

zmień nazwę -n "s / ^ (\ d {2}) \. (\ d {2}). * / s $ 1e 2.mp4 /"

Działa, kiedy testowałem to na http://regexr.com/, ale kiedy uruchamiam polecenie w mojej instalacji Ubuntu 12.04, wszystkie moje pliki zostają przemianowane nase.mp4

Wygląda więc na to, że grupy są ignorowane lub nie są wstawiane, lub coś w tym stylu. Czy brakuje mi czegoś oślepająco oczywistego, czy dzieje się coś innego?

Skończyło się na użyciu pyRenamer i to działało wspaniale, ale nadal chciałbym wiedzieć, dlaczego renamenie działa poprawnie.

Pozdrawiam i dziękuję za wszelką pomoc, jaką możesz mi dać.

0x0049
źródło

Odpowiedzi:

14

Myślę, że być może korzystanie z cudzysłowach jest umożliwienie powłoka poszerzyć $1i$2

$ rename -nv "s/^(\d{2})\.(\d{2}).*/s$1e$2.mp4/" *.mp4
12.34 File name.mp4 renamed as se.mp4

podczas gdy z pojedynczymi cudzysłowami wokół wyrażenia zmiany nazwy

$ rename -nv 's/^(\d{2})\.(\d{2}).*/s$1e$2.mp4/' *.mp4
12.34 File name.mp4 renamed as s12e34.mp4
steeldriver
źródło