[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [bash] rimuovere spazi nel nome dei file e delle directory.



Ciao,

bodrato@mail.dm.unipi.it wrote:
> Ciao,
>
> Il Lun, 6 Giugno 2011 12:42 am, gollum1 ha scritto:
>>> come da oggetto, vorrei fare uno script che mi rimuova tutti gli spazi

>>> (sostituendoli con il carattere underscore) partendo da una directory,
>>> e per tutte le sue sottodirectory e file in esse contenute.
Ciao forse potrebbe esserti d'aiuto anche detox [1]: "Detox is a utility
designed to clean up filenames. ..."

Lorenzo.

[1] http://packages.debian.org/stable/utils/detox
>> cercando con google alla fine ho trovato questo script:
>> http://bash-script.b2com.org/articoli/eliminare-spazi-dai-nomi-
>> dei-file.php ma secondo me si pu� ancora migliorare... (funzionare
> Prendendo dallo script l'idea "find|while read", potresti provare questa:
>
> find -depth -type d|while read d;do pushd "$d";rename 'y/ /_/' *;popd;done
>
> ATTENZIONE: non rinomina i file che iniziano con "." (punto)! (puoi
> provare con "* .*" al posto di "*")
>
> ATTENZIONE! L'applicazione non e` iniettiva: se una dir contiene i tre nomi
> "A B C", "A_B C" e "A B_C"... solo uno di questi potra` essere rinominato.
>
> ATTENZIONE: per quanto appena detto, la procedura non puo` essere
> reversibile! Se la esegui "all'indietro" con 'y/_/ /', converti in spazi
> anche i caratteri che erano gia` "_" (tratto basso) "prima della cura"!
>
> ...un carattere decisamente poco usato nei nomi file, soprattutto da
> alcuni altri sistemi operativi, dovrebbe essere ":" (due punti). Ci
> sarebbe anche "\" (barra inversa), ma questa facilmente ti da' dei
> grattacapi anche con bash...
>
> Ciao,
> m
>


Reply to: