Pagina 1 di 1
[RISOLTO] bulk rename via bash
Inviato: dom 20 mag 2012, 15:33
da Eberoth
Salve a tutti,
recentemente mi sono trovato a dover rinominare una trentina di file contenuti in una singola directory e con nomi che seguivano il modello:
dove "prefisso" ed estenzione sono uguali per tutti i file e solo la parte "nomecapitolo" è diversa.
Quello che dovevo fare era rimpianziare "prefisso" con "nuovoprefisso", in modo da ottenere gli stessi trenta file nella forma:
Dopo qualche esperimento con mv e cicli for, ho optato per la (poco elegante ma molto comoda) utility "bulk rename" di xfce... ma nel frattempo la cosa è diventata una questione personale e quindi eccomi qui a chiedervi aiuto.
Qualcuno di voi sa come potrei scrivere uno script che mi permetta di ottenere lo stesso risultato?
Re: bulk rename via bash
Inviato: dom 20 mag 2012, 15:42
da targzeta
Così ad occhio e a memoria:
Codice: Seleziona tutto
cd dir
for file in *
do
mv $file nuovoprefisso-${file#*-}
done
Leggi il man della bash e cerca
Parameter Expansion.
Infatti:
Codice: Seleziona tutto
$> mkdir /tmp/casa
$> cd /tmp/casa
$> for i in $(seq 20)
> do
> touch prefisso-casa$i.ext
> done
$> ls
totale 0
0 prefisso-casa1.ext 0 prefisso-casa16.ext 0 prefisso-casa4.ext
0 prefisso-casa10.ext 0 prefisso-casa17.ext 0 prefisso-casa5.ext
0 prefisso-casa11.ext 0 prefisso-casa18.ext 0 prefisso-casa6.ext
0 prefisso-casa12.ext 0 prefisso-casa19.ext 0 prefisso-casa7.ext
0 prefisso-casa13.ext 0 prefisso-casa2.ext 0 prefisso-casa8.ext
0 prefisso-casa14.ext 0 prefisso-casa20.ext 0 prefisso-casa9.ext
0 prefisso-casa15.ext 0 prefisso-casa3.ext
$> for file in *
> do
> mv $file nuovoprefisso-${file#*-}
> done
$> ls
totale 0
0 nuovoprefisso-casa1.ext 0 nuovoprefisso-casa19.ext
0 nuovoprefisso-casa10.ext 0 nuovoprefisso-casa2.ext
0 nuovoprefisso-casa11.ext 0 nuovoprefisso-casa20.ext
0 nuovoprefisso-casa12.ext 0 nuovoprefisso-casa3.ext
0 nuovoprefisso-casa13.ext 0 nuovoprefisso-casa4.ext
0 nuovoprefisso-casa14.ext 0 nuovoprefisso-casa5.ext
0 nuovoprefisso-casa15.ext 0 nuovoprefisso-casa6.ext
0 nuovoprefisso-casa16.ext 0 nuovoprefisso-casa7.ext
0 nuovoprefisso-casa17.ext 0 nuovoprefisso-casa8.ext
0 nuovoprefisso-casa18.ext 0 nuovoprefisso-casa9.ext
Emanuele
Re: bulk rename via bash
Inviato: dom 20 mag 2012, 16:01
da Eberoth
Ok, grazie spina, in effetti la soluzione era proprio davanti ai miei occhi ma come al solito non l'ho vista.
Re: [RISOLTO] bulk rename via bash
Inviato: dom 20 mag 2012, 16:35
da conraid
rename prefisso- nuovoprefisso- prefisso-*
Re: [RISOLTO] bulk rename via bash
Inviato: dom 20 mag 2012, 16:41
da Eberoth
ok, dopo aver letto la risposta di conraid mi sento ancora più stupido.
Re: [RISOLTO] bulk rename via bash
Inviato: dom 20 mag 2012, 16:42
da targzeta
Io neanche lo conoscevo quel comando
Emanuele