rinomina multipla di files in ubuntu linux

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:

Lascia un commento