I gruppi di acquisizione vengono ignorati durante la ridenominazione dei file


10

Ho un numero di file in questo formato:

##. ## - Nome file.mp4

Voglio rinominarli in:

s ## e ##. mp4

Questo è quello che mi è venuto in mente:

rinomina -n "s / ^ (\ d {2}) \. (\ d {2}). * / s $ 1e $ 2.mp4 /"

Funziona quando l'ho provato su http://regexr.com/ ma quando eseguo il comando sulla mia installazione di Ubuntu 12.04 tutti i miei file vengono rinominatise.mp4

Quindi sembra che i gruppi vengano ignorati o non inseriti o qualcosa del genere. Mi sto perdendo qualcosa di palesemente ovvio o sta succedendo qualcos'altro?

Ho finito per usare pyRenamer e ha funzionato meravigliosamente, ma vorrei ancora sapere perché renamenon funziona correttamente.

Saluti e grazie per l'aiuto che puoi darmi.

Risposte:


14

Penso che forse il tuo uso di virgolette doppie stia permettendo alla shell di espandersi $1e$2

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

mentre con virgolette singole attorno all'espressione di rinomina

$ rename -nv 's/^(\d{2})\.(\d{2}).*/s$1e$2.mp4/' *.mp4
12.34 File name.mp4 renamed as s12e34.mp4
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.