Re: [bash] rimuovere spazi nel nome dei file e delle directory.
Ciao, Il Lun, 13 Giugno 2011 2:14 am, gollum1 ha scritto: questo è finalmente quello che volevo ottenere... grazie a tutti per l'aiuto: [...] for A in `find . -depth`; do Non ti conviene aggiungere -name * *, in modo da cercare solo i file ? Comunque attenzione! Il mv che hai alla fine, sovrascrive, quindi rischia di eliminare file. Esempio, crea una directory di prova come segue: mkdir prova; cd prova; touch ; touch _ ; touch __; touch __-99 contiene 4 file... se lanci lo script, a fine esecuzione ne conterra` solo 3 Ciao, m -- http://bodrato.it/papers/ http://www.acquabenecomune.org/ -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/50724.151.32.172.206.1307945879.squir...@mail.dm.unipi.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
In data lunedì 13 giugno 2011 08:17:59, bodr...@mail.dm.unipi.it ha scritto: Ciao, Il Lun, 13 Giugno 2011 2:14 am, gollum1 ha scritto: questo è finalmente quello che volevo ottenere... grazie a tutti per l'aiuto: [...] for A in `find . -depth`; do Non ti conviene aggiungere -name * *, in modo da cercare solo i file ? Comunque attenzione! Il mv che hai alla fine, sovrascrive, quindi rischia di eliminare file. Esempio, crea una directory di prova come segue: mkdir prova; cd prova; touch ; touch _ ; touch __; touch __-99 contiene 4 file... se lanci lo script, a fine esecuzione ne conterra` solo 3 Ciao, m no... io voglio rinominare anche le directory, perché per le operazione che devo fare dopo, mi rompono le scatole tutti gli spazi, sia nel path che nel nome del file... non c'é la sovrascrittura del file, infatti i due if annidati che lo precedono, si prendono il compito di aggiungere un contatore in coda al nome che va a prendere. bhe.. nel tuo caso... c'é il file -99 che rompe le palle... ma chi si tiene 99 revisioni dello stesso file? in quel caso mi troverei con il file -00 solo dal passo seguente, mi troverei a sovrascrivere lo -01... la soluzione potrebbe essere quella di aumentare il numero degli zeri... e passare a tre cifre di contatore ma non credo che sia necessario, almeno per lo scopo che mi prefiggo nel resto del programma... Byez -- Gollum1 Tesoro, dov'é il mio tesoro... -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/201106131010.02746.goll...@tiscali.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
Il 13/06/2011 02:14, gollum1 ha scritto: grazie Alessandro, ho sviluppato lo script che mi hai scritto. molto bene :-) [...] if [ $nome != $nnome ]; then if test `find $dir -maxdepth 1 -name $nnome`; then found=`find $dir -maxdepth 1 -regex $dir/$nnome-[0-9][0-9] | sort | tail -n 1` if test $found; then cont=$((`echo ${found:${#found}-2:2}` + 1)) cont=`printf %02d $cont` nnome=$nnome-$cont else nnome=$nnome-01 fi fi echo -en \033[1A\033[Krinomino \$A\ come \$dir/$nnome\\n\n mv $A $dir/$nnome; fi if [ $nome != $nnome ]; then while [ -e $dir/$nnome ] ; do nnome=$nnome-`ls -1 $dir/$nnome* | wc -l`; done echo -en \033[1A\033[Krinomino \$A\ come \$dir/$nnome\\n\n mv $A $dir/$nnome; fi così non dovresti perdere alcun file nella riscrittura. se poi vuoi il padding, puoi sempre aggiungerlo ;-) -- Alessandro T. R: Perché leggiamo dall'alto al basso e da sinistra a destra. D: Perché dovrei iniziare la risposta alla mail sotto il testo quotato? -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4df5ded8.5030...@yahoo.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
In data lunedì 6 giugno 2011 15:10:34, Alessandro T. ha scritto: Il 06/06/2011 00:10, gollum1 ha scritto: Ciao All, 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. IFS=$'\n'; for A in `find . -depth`; do nome=${A##*/}; dir=${A%/*}; nnome=`echo $nome | sed 'y/ /_/'`; if [ $nome != $nnome ]; then mv $A $dir/$nnome; fi done grazie Alessandro, ho sviluppato lo script che mi hai scritto. per conoscenza... questo è finalmente quello che volevo ottenere... grazie a tutti per l'aiuto: echo start $0 echo Tratto i file che si trovano nella directory $ORIG\n echo Sostituisco tutti gli spazi con il simbolo underscore \_\\n\n IFS=$'\n'; for A in `find . -depth`; do echo -en \033[1A\033[KControllo il file $A\n nome=${A##*/}; dir=${A%/*}; nnome=`echo $nome | sed 'y/ /_/'`; if [ $nome != $nnome ]; then if test `find $dir -maxdepth 1 -name $nnome`; then found=`find $dir -maxdepth 1 -regex $dir/$nnome-[0-9][0-9] | sort | tail -n 1` if test $found; then cont=$((`echo ${found:${#found}-2:2}` + 1)) cont=`printf %02d $cont` nnome=$nnome-$cont else nnome=$nnome-01 fi fi echo -en \033[1A\033[Krinomino \$A\ come \$dir/$nnome\\n\n mv $A $dir/$nnome; fi done byez -- Gollum 1 Tessoro, dov'é il mio tesssoro... -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/201106130214.00148.goll...@tiscali.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
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. 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 -- http://bodrato.it/software/strassen.html http://www.referendumacqua.it/ -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/54413.151.21.82.62.1307341516.squir...@mail.dm.unipi.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
Ciao, bodr...@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 -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4dec91d0.7040...@libero.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
Il giorno Lun 06 Giu 2011 00:10:25 CET, gollum1 ha scritto: [...] qualcuno ha idea di come potrei procedere? anche perché poi dovrei anche fare il passaggio opposto, una volta completato il lavoro che devo fare su questi file (lavoro che non posso fare se ci sono degli spazi nei nomi). Byez Scusa, ma quindi così: find $ORIG -type d | rename s/ /_/g -v find $ORIG -type f | rename s/ /_/g -v non va? Dov'è che ti da eventuali errori? -- RaSca Mia Mamma Usa Linux: Niente è impossibile da capire, se lo spieghi bene! ra...@miamammausalinux.org http://www.miamammausalinux.org -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4dec9383.5050...@miamammausalinux.org
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
Prova a guarda questo link http://diveintomark.org/archives/2007/06/07/zmv Il 06 giugno 2011 10:44, RaSca ra...@miamammausalinux.org ha scritto: Il giorno Lun 06 Giu 2011 00:10:25 CET, gollum1 ha scritto: [...] qualcuno ha idea di come potrei procedere? anche perché poi dovrei anche fare il passaggio opposto, una volta completato il lavoro che devo fare su questi file (lavoro che non posso fare se ci sono degli spazi nei nomi). Byez Scusa, ma quindi così: find $ORIG -type d | rename s/ /_/g -v find $ORIG -type f | rename s/ /_/g -v non va? Dov'è che ti da eventuali errori? -- RaSca Mia Mamma Usa Linux: Niente è impossibile da capire, se lo spieghi bene! ra...@miamammausalinux.org http://www.miamammausalinux.org -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4dec9383.5050...@miamammausalinux.org -- esta es mi vida e me la vivo hasta que dios quiera -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/BANLkTi=hgbgzn_mflghhjr7nkkbjsc5...@mail.gmail.com
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
Chiedo scusa per la mail in privato... me ne sono accorto mentre la stavo inviando. In data lunedì 6 giugno 2011 10:44:51, RaSca ha scritto: Il giorno Lun 06 Giu 2011 00:10:25 CET, gollum1 ha scritto: [...] qualcuno ha idea di come potrei procedere? anche perché poi dovrei anche fare il passaggio opposto, una volta completato il lavoro che devo fare su questi file (lavoro che non posso fare se ci sono degli spazi nei nomi). Byez Scusa, ma quindi così: find $ORIG -type d | rename s/ /_/g -v find $ORIG -type f | rename s/ /_/g -v non va? Dov'è che ti da eventuali errori? il problema l'ha con tutti i file che sono contenuti nella directory che aveva uno spazio, in quanto li trova tutti con il path contenete lo spazio, cerca di modificarlo, ma non può farlo, perché lo spazio si riferisce ad una directory superiore, che per di più è già stata cambiata dal primo evento... il fattore è che find non si resetta sui nuovi nomi... per quello che ci vuole una funzione ricorsiva. Byez -- Gollum 1 Tessoro, dov'é il mio tesssoro... -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/201106061126.08126.goll...@tiscali.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
In data lunedì 6 giugno 2011 08:25:16, bodr...@mail.dm.unipi.it ha scritto: 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 mi sovviene un dubbio... visto che mv se ne sbatte se esiste già un qualcosa con lo stesso nome... potrei se mi trovo nella situazione da te descritta con i 3 file, rischierei di sovrascrivere una copia con l'altra? Byez -- Gollum 1 Tessoro, dov'é il mio tesssoro... -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/201106061127.52490.goll...@tiscali.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
Il giorno Lun 06 Giu 2011 11:26:08 CET, gollum1 ha scritto: [...] per quello che ci vuole una funzione ricorsiva. Byez Perdonami, ma non capisco. La seconda find è successiva alle prime modifiche, pertanto è una nuova ricerca sui nuovi nomi impostati (quindi senza spazio). Se a far scazzare le cose è rename (che di natura lavora su gruppi di file) puoi sempre provare una cosa simile: find -maxdepth 1 -type f | while read file; do mv $file `echo $file | sed 's/ /_/g'`; done -- RaSca Mia Mamma Usa Linux: Niente è impossibile da capire, se lo spieghi bene! ra...@miamammausalinux.org http://www.miamammausalinux.org -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4dec9f47.30...@miamammausalinux.org
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
gollum1 scrisse in data 06/06/2011 11:27: mi sovviene un dubbio... visto che mv se ne sbatte se esiste già un qualcosa con lo stesso nome... potrei se mi trovo nella situazione da te descritta con i 3 file, rischierei di sovrascrivere una copia con l'altra? Non ho seguito il thread per cui se non sarò appropriato perdonatemi... l'opzione -i di mv serve proprio a fare in modo di non sovrascrivere accidentalmente files con lo stesso nome. Ciao Piviul -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4deca04a.5080...@riminilug.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
In data lunedì 6 giugno 2011 11:35:03, RaSca ha scritto: Il giorno Lun 06 Giu 2011 11:26:08 CET, gollum1 ha scritto: [...] per quello che ci vuole una funzione ricorsiva. Byez Perdonami, ma non capisco. La seconda find è successiva alle prime modifiche, pertanto è una nuova ricerca sui nuovi nomi impostati (quindi senza spazio). Se a far scazzare le cose è rename (che di natura lavora su gruppi di file) puoi sempre provare una cosa simile: find -maxdepth 1 -type f | while read file; do mv $file `echo $file | sed 's/ /_/g'`; done a far scazzare le cose è subito la prima... se hai 1 dir con lo spazio, e dentro 5 dir (senza spazio) per ogni dir ti da un warning, perché per le 5 dir interne, il loro path contiene uno spazio... se poi una dir interna contiene a sua volta lo spazio, non viene corretta, perché rename non la trova in quanto la directory superiore non ha più lo spazio. Byez -- Gollum 1 Tessoro, dov'é il mio tesssoro... -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/201106061255.08016.goll...@tiscali.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
Il 06/06/2011 00:10, gollum1 ha scritto: Ciao All, 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. IFS=$'\n'; for A in `find . -depth`; do nome=${A##*/}; dir=${A%/*}; nnome=`echo $nome | sed 'y/ /_/'`; if [ $nome != $nnome ]; then mv $A $dir/$nnome; fi done -- Alessandro T. R: Perché leggiamo dall'alto al basso e da sinistra a destra. D: Perché dovrei iniziare la risposta alla mail sotto il testo quotato? -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4decd1ca.9000...@yahoo.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
gollum1 scrisse in data 06/06/2011 12:55: a far scazzare le cose è subito la prima... se hai 1 dir con lo spazio, e dentro 5 dir (senza spazio) per ogni dir ti da un warning, perché per le 5 dir interne, il loro path contiene uno spazio... se poi una dir interna contiene a sua volta lo spazio, non viene corretta, perché rename non la trova in quanto la directory superiore non ha più lo spazio. Anche con l'opzione -depth che ti hanno già suggerito? Piviul -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4decd513.2000...@riminilug.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
In data lunedì 6 giugno 2011 15:24:35, Paolo Sala ha scritto: gollum1 scrisse in data 06/06/2011 12:55: a far scazzare le cose è subito la prima... se hai 1 dir con lo spazio, e dentro 5 dir (senza spazio) per ogni dir ti da un warning, perché per le 5 dir interne, il loro path contiene uno spazio... se poi una dir interna contiene a sua volta lo spazio, non viene corretta, perché rename non la trova in quanto la directory superiore non ha più lo spazio. Anche con l'opzione -depth che ti hanno già suggerito? Piviul l'opzione -depth indica la profondità a cui posso andare nella scansione con find, quindi non mi fa la ricorsività, o meglio... la ricorsività me la devo costruire io, come in effetti fa lo script che ho linkato nel mio secondo post. in pratica usa find con depth = 1 per cercare tutti i file allo stesso livello e poi ricorsivamente si abbassa di un livello alla volta... bisognerebbe fare in modo che find ciclasse ricorsivamente da solo... ma non so se si può. Byez -- Gollum 1 Tessoro, dov'é il mio tesssoro... -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/201106061843.08277.goll...@tiscali.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
2011/6/6 gollum1 goll...@tiscali.it: Ciao All, 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. http://mywiki.wooledge.org/BashFAQ/030 ciao -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/BANLkTik=yq8iqh-nuozfurr9+osvys6...@mail.gmail.com
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
Ciao, Il Lun, 6 Giugno 2011 6:43 pm, gollum1 ha scritto: In data luned� 6 giugno 2011 15:24:35, Paolo Sala ha scritto: gollum1 scrisse in data 06/06/2011 12:55: se poi una dir interna contiene a sua volta lo spazio, non viene corretta, perch� rename non la trova in quanto la directory superiore non ha pi� lo spazio. Anche con l'opzione -depth che ti hanno gi� suggerito? Come dice Pivul, l'opzione -depth che io ti avevo suggerito _evita_ questo problema, restano i problemi che ti ho scritto, dovuti alla non iniettivita` del cambiare caratteri. l'opzione -depth indica la profondit� a cui posso andare nella scansione Non direi. $ man find|grep -E ^ *-depth P -depth Process each directory's contents before the directory itself. L'opzione -depth determina l'ordine nel quale file/directory vengono analizzati, quindi la riga che ti avevo scritto cambia prima nome alle foglie, poi ai rami, esattamente nell'ordine necessario per evitare di tagliare il ramo su cui si è seduti ... :-P find, quindi non mi fa la ricorsivit�, o meglio... la ricorsivit� me la devo costruire io Invece find fa quello che serve, basta chiederglielo. Ciao, m -- http://bodrato.it/software/toom.html http://www.csenonuke.altervista.org/ -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/36206.151.21.83.14.1307383695.squir...@mail.dm.unipi.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
In data lunedì 6 giugno 2011 20:08:15, bodr...@mail.dm.unipi.it ha scritto: Ciao, [...] find, quindi non mi fa la ricorsivit�, o meglio... la ricorsivit� me la devo costruire io Invece find fa quello che serve, basta chiederglielo. ok... perfetto... mi devo studiare meglio find... se veramente posso fare quello che dici... posso semplificare di molto lo script... Byez -- Gollum 1 Tessoro, dov'é il mio tesssoro... -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/201106070001.25314.goll...@tiscali.it
[bash] rimuovere spazi nel nome dei file e delle directory.
Ciao All, 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. ho provato con rename: rename s/ /_/g $ORIG* ma questo funziona solo nel primo livello ($ORIG), tralasciando tutto quello contenuto in eventuali sottodirectory. ho provato anche con find find $ORIG | rename s/ /_/g -v ma mi da errore, perché una volta rinominato una directory, tutti gli elementi in essa contenuti praticamente non esistono più... e quindi non possono essere rinominati (fanno riferimento al nome precedente della directory che li conteneva). ho provato anche a farlo in due step, uno mettendo il rename solo per le directory e successivamente per i file... ma non funziona comunque, sempre per lo stesso motivo precedente... find $ORIG -type d | rename s/ /_/g -v qualcuno ha idea di come potrei procedere? anche perché poi dovrei anche fare il passaggio opposto, una volta completato il lavoro che devo fare su questi file (lavoro che non posso fare se ci sono degli spazi nei nomi). Byez -- Gollum 1 Tessoro, dov'é il mio tesssoro... -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/201106060010.25962.goll...@tiscali.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
In data lunedì 6 giugno 2011 00:10:25, gollum1 ha scritto: Ciao All, 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. [...] 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 funziona, e per ora lo sto usando così, ma non è proprio il massimo come prestazioni) se a qualcuno viene in mente qualche alternativa, lo ringrazio anticipatamente... Byez -- Gollum 1 Tessoro, dov'é il mio tesssoro... -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/201106060042.52911.goll...@tiscali.it
Re: [bash] rimuovere spazi nel nome dei file e delle directory.
Il 06/06/2011 00:10, gollum1 ha scritto: Ciao All, 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. ho provato con rename: rename s/ /_/g $ORIG* ma questo funziona solo nel primo livello ($ORIG), tralasciando tutto quello contenuto in eventuali sottodirectory. ho provato anche con find find $ORIG | rename s/ /_/g -v ma mi da errore, perché una volta rinominato una directory, tutti gli elementi in essa contenuti praticamente non esistono più... e quindi non possono essere rinominati (fanno riferimento al nome precedente della directory che li conteneva). ho provato anche a farlo in due step, uno mettendo il rename solo per le directory e successivamente per i file... ma non funziona comunque, sempre per lo stesso motivo precedente... find $ORIG -type d | rename s/ /_/g -v qualcuno ha idea di come potrei procedere? anche perché poi dovrei anche fare il passaggio opposto, una volta completato il lavoro che devo fare su questi file (lavoro che non posso fare se ci sono degli spazi nei nomi). Byez Da una vecchia mail: Maledetti spazi OLDIFS=$IFS IFS=$'\n' for file in `ls .` do newfilename=`echo $file | sed 's/ /_/g'` mv $file $newfilename done IFS=$OLDIFS ciao Beppe -- le nuvole non hanno regole, perchè non hanno mai rinunciato alla libertà di sognare. -- Per REVOCARE l'iscrizione alla lista, inviare un email a debian-italian-requ...@lists.debian.org con oggetto unsubscribe. Per problemi inviare un email in INGLESE a listmas...@lists.debian.org To UNSUBSCRIBE, email to debian-italian-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/4dec58a2.6030...@tin.it