[Shell] Programmino per rinominare molti files

Linguaggi di programmazione: php, perl, python, C, bash e tutti gli altri.
puller
Prode Principiante
Messaggi: 170
Iscrizione: sabato 8 ottobre 2005, 17:20
Località: Pisa

[Shell] Programmino per rinominare molti files

Messaggio da puller »

Ciao a tutti, ho molti file con un nome del genere: ABCDxEF, dove x è un numero sequenziale che va da 1 a 400.
Devo rinominarli con un nome più corto, ad esempio Ax.
La cosa dovrebbe essere abbastanza semplice, in pseudocodice:

Codice: Seleziona tutto

mv ABCD*EF A/*variabile*/
solo che non so come si usa la variabile, né come si implementa il ciclo per incrementarne il valore ogni volta, da 1 a 400!

Potete aiutarmi?
Grazie.
puller
Prode Principiante
Messaggi: 170
Iscrizione: sabato 8 ottobre 2005, 17:20
Località: Pisa

Re: [Shell] Programmino per rinominare molti files

Messaggio da puller »

Una cosa del genere non funziona, ma non dovrebbe essere troppo più complicato:

Codice: Seleziona tutto

var = cont
for i in `ls`
	do
		mv "ABCD*EF" "A"$cont
		cont++
	done
Forse non si usano in quel modo le stringhe?
puller
Prode Principiante
Messaggi: 170
Iscrizione: sabato 8 ottobre 2005, 17:20
Località: Pisa

Re: [Shell] Programmino per rinominare molti files

Messaggio da puller »

Ho corretto un po' di schifezze, il problema ora è l'uso della wildcard mask:

Codice: Seleziona tutto

#!/usr/bin/bash
cont=1
for i in `ls`
	do
		mv ABCD*EF "A"$cont
		((cont += 1))
	done
puller
Prode Principiante
Messaggi: 170
Iscrizione: sabato 8 ottobre 2005, 17:20
Località: Pisa

[Risolto] Re: [Shell] Programmino per rinominare molti files

Messaggio da puller »

Alla fine ho risolto:

Codice: Seleziona tutto

#!/usr/bin/bash
cont=1
for i in ABCD*EF
do
	#echo $i
	#echo $cont
	mv "$i" "exp1"$cont"exp2"
	cont=$((cont+1))
done
Ciao.
Avatar utente
garak
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1649
Iscrizione: lunedì 13 giugno 2005, 13:37
Desktop: Gnome
Distribuzione: Ubuntu 24.04
Sesso: Maschile
Località: Roma
Contatti:

Re: [Shell] Programmino per rinominare molti files

Messaggio da garak »

Ma usare rename era troppo semplice?  :P

Codice: Seleziona tutto

rename 's/ABCD([0-9]+)EF/a$1/' *
Ultima modifica di garak il venerdì 5 settembre 2008, 11:28, modificato 1 volta in totale.
Scrivi risposta

Ritorna a “Programmazione”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 5 ospiti