[GNU/Linux] Rinominare "sequenzialmente" file .jpg di due cartelle in Ubuntu(MATE)

garnak.olegovitc1
Hallo,
ho due cartelle e in ciascuna ho moltissimi file .jpg, il mio scopo è quello di rinominare i file di una cartella con numeri pari e i file dell'altra cartella con numeri dispari, un file alla volta è roba da pazzi, ergo chiedevo se qualcuno conosce qualche programma per Ubuntu(MATE) o qualche comando o qualche procedura che riesca a fare ciò.
Ringrazio anticipatamente!

Risposte
garnak.olegovitc1
forse ho risolto, o almeno funziona.. in sostanza ho usato per una cartella, una volta aperto il terminale in questa, il seguente script per avere numeri pari:

num=0 
for file in *.jpg;do 
	mv "$file" "$(printf "%u" $num).jpg" 
	let num=num+2 
done

per l'altra cartella ho usato il seguent script per avere i numeri dispari

num=1 
for file in *.jpg;do 
	mv "$file" "$(printf "%u" $num).jpg" 
	let num=num+2 
done


(mischiando i contenuti dei file rinominati in una nuova cartella ho ottenuto i file ordinati in sequenza di numeri naturali..)

Cosa ne pensate? Come dice il titolo di un film "Basta che funzioni", per me va bene 8-) .. mi domando se esistono alternative o altri script/comandi che possano fare ciò, ormai sono curioso e non elimino il POST!!

onlyReferee
Ciao garnak :!:
Sì, anche a me sembra la soluzione più semplice ed intuitiva quella che hai messo a punto. Poco tempo fa avevo un problema analogo (solo che ero su Windows e con i file tutti in una sola cartella) ed ho risolto con poche righe di codice in Visual Basic.

garnak.olegovitc1
"onlyReferee":
Poco tempo fa avevo un problema analogo (solo che ero su Windows e con i file tutti in una sola cartella) ed ho risolto con poche righe di codice in Visual Basic.
posteresti, se ricordi, il codice? Su Windows usavo un programma (se non erro "File Renamer Basic") e non ho mai pensato a fare diversamente

onlyReferee
Certo, garnak, eccolo qui di seguito (mi ero salvato il programma in caso mi servisse nuovamente). L'ho inserito all'interno della routine che gestisce l'evento click di un bottone disegnato su una form del programma (la maniera più semplice per invocare il codice). Il percorso della directory con i file da rinominare è letto da una comunissima textbox.
Dim strPercorsoDirectory, strNomeFileCorrente, strEstensioneFileCorrente As String
    Dim intProgressivo As Long
    
    'Con Debug.Print [nome_variabile] si può stampare nella finestra dell'area immediata un'espressione a runtime
    strPercorsoDirectory = txtPercorsoDirectory.Text
    'Mi posiziono sul primo file presente nella directory
    strNomeFileCorrente = Dir(strPercorsoDirectory & "*.*")
    intProgressivo = 1

    Do While strNomeFileCorrente > ""
        'Recupero l'estensione del file
        strEstensioneFileCorrente = Right(strNomeFileCorrente, 3)
        'Rinomino il file
        Name strPercorsoDirectory & strNomeFileCorrente As strPercorsoDirectory & intProgressivo & "." & strEstensioneFileCorrente
        'Mi posiziono sul file successivo ed aggiorno il progressivo
        strNomeFileCorrente = Dir()
        intProgressivo = intProgressivo + 1
    Loop

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.