Per rimoninare in ubuntu linux una molteplicità di files con un solo comando da terminale cioè senza ricorrere alle potenzialità della shell bash è disponibile il tool Perl rename/prename. Per verificare la disponibilità di rename oltre a digitare
maurizio@U1210tst:~$ rename --help
è anche possibile utilizzare la seguente espressione
maurizio@U1210tst:~$ file $(readlink -f $(type -p rename)) /usr/bin/prename: Perl script, ASCII text executable
Se il risultato è quello riportato. Viene indicato il nome del tool perl di default con tanto di posizione /usr/bin. -v: lista i nomi dei files rinominati con successo -n: consente la preview del comando cioè mostra i files che saranno rinominati -f: forza il rewriting dei files esistenti. perlexpr: Perl Expression. sostituire l’estensione da .MIDI a .mid
remame -v -n 's/.MIDI$/\.mid/' *.MIDI
convertire il file da minuscolo a maiuscolo
rename -f 'y/a-z/A-Z/' *.wav
Come sempre da terminale si dispone di parecchia flessibilità ad esempio volendo è anche possibile combinare due comandi rename grazie alla pipe. Ad esempio convertire in maiuscolo il nome dei files e quindi riportare l’estensione in minuscolo 036-c.wav 037-c#.wav 038-d.wav 039-d#.wav -> 036-C.wav 037-C#.wav 038-D.wav 039-D#.wav
rename -f 'y/a-z/A-Z/' * && rename -f 's/\.WAV$/\.wav/' *.WAV
Se i files sono presenti in subdirectories ./dirs/filenames.wav si può usare il seguente comando
find . -depth -iname "*.wav" -execdir rename 's/^(\.\/[^.]*)\.(.*)$/\U$1\E.$2/' {} \;
Per togliere una parte numerica iniziale terminante con il trattino – 1234567-test_a123-b345
rename 's/^[0-9]*-//;' *
Alternative: è possibile anche utilizzare mv il comando base per il rename di un singolo file e la bash. for f in *; do mv $f ${f#[0-9]*-}; done
Risorse:
- Linux Elenco Comandi Utili
- http://stackoverflow.com/questions/18743284/batch-rename-files
- http://stackoverflow.com/questions/6316600/renaming-lots-of-files-in-linux-according-to-a-pattern