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

2011-06-13 Per discussione bodrato
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.

2011-06-13 Per discussione Gollum1
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.

2011-06-13 Per discussione Alessandro T.

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.

2011-06-12 Per discussione gollum1
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.

2011-06-06 Per discussione bodrato
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.

2011-06-06 Per discussione Lorenzo Sutton
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.

2011-06-06 Per discussione RaSca

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.

2011-06-06 Per discussione emmanuel segura
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.

2011-06-06 Per discussione gollum1
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.

2011-06-06 Per discussione gollum1
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.

2011-06-06 Per discussione RaSca

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.

2011-06-06 Per discussione Paolo Sala
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.

2011-06-06 Per discussione gollum1
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.

2011-06-06 Per discussione Alessandro T.

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.

2011-06-06 Per discussione Paolo Sala
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.

2011-06-06 Per discussione gollum1
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-06-06 Per discussione ludovico van
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.

2011-06-06 Per discussione bodrato
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.

2011-06-06 Per discussione gollum1
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.

2011-06-05 Per discussione gollum1

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.

2011-06-05 Per discussione gollum1
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.

2011-06-05 Per discussione beppe

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