A
chi non è mai capitato di dover rinominare una lunga serie di file,
come ad esempio una collezione di foto? Farlo con l'interfaccia
grafica di un qualsiasi file manager è una procedura lunga e noiosa,
costringendo l'utente
a dover cliccare su ogni file per rinominarlo a mano!
Con
il comando rename
possiamo rinominare una
serie
di file in
un colpo solo.
La sintassi di questo comando è la seguente:
rename
[espressione regolare]
files
La sintassi dell'espressione regolare è quella di Perl,
in sintesi ha questa forma:
s
/ caratteri da sostituire
/ nuovi
caratteri /
Per
quanto riguarda files,
possiamo utilizzare delle wildcard per selezionare i file da
modificare.
Vediamo alcuni esempi per chiarire:
rename
s/.jpeg/.jpg/ *.jpeg
*.jpeg informa rename che deve prendere
tutti i file che terminano con .jpeg, quindi l'espressione
regolare s/.jpeg/.jpg/ sostituisce ogni occorrenza della
stringa .jpeg con la stringa .jpg.
Quindi se abbiamo i file
a.jpg
b.jpeg
c.jpg
d.jpeg
rename modificherà rispettivamente
b.jpeg in b.jpg
d.jpeg in d.jpg.
La sintassi delle espressioni regolari, seppur
inizialmente può apparire piuttosto complessa, è uno strumento
potente e versatile. Tramite l'uso di metacaratteri possiamo ottenere
delle espressioni più complesse, vediamone alcuni:
^ inizio della stringa
$ fine della stringa
* nessuna o più ripetizioni
+ una o più ripetizioni
{} numero esatto della ripetizione
Vediamo degli esempi pratici:
rename s/^/foto/ *.jpg
Aggiunge la stringa foto davanti al nome di tutti i file
che terminano con .jpg, ad esempio
01.jpg diventerà foto01.jpg.
rename s/$/foto/ *.jpg
Aggiunge la stringa foto alla fine del nome di tutti i
file che terminano con .jpg, ad esempio
01.jpg diventerà 01foto.jpg.
rename s/ae*/e/ *
Tutte le occorrenze di una 'a' che sia seguita da nessuna
o più 'e', verranno sostituite con e.
rename s/ae+/e/ *
Tutte le occorrenze di una 'a' che sia seguita da una o
più 'e', verranno sostituite con e.
rename s/a{3}/a/ *
Tutte le occorrenze di 'aaa' verranno sostituite con 'a'.
Per ulteriori informazioni sulla sintassi di rename
potete consultare le istruzioni con il solito
man rename
Mentre per la sintassi delle espressioni regolari in
Perl vi segnalo questa pagina.
Nessun commento:
Posta un commento