Newsgroup: it.comp.os.linux.development
Titolo: problema bash script e mv

sto _CERCANDO_ di fare uno script che tolga gli spazi dai nomi dei files.
sono riuscito senza problemi a fare la versione che stampa semplicemente in
stdout (ad esempio):
    mv questo\ e\ un\ file\ con\ gli\ spazi.txt questoeunfileconglispazi.txt
a titolo di prova, e soprattutto per verificare che funzionasse, per evitare
che magari mi si cancella un'intera partizione...
quando pero' al posto di 'echo' metto 'mv' per eseguire *realmente* lo
script, bash mi da questo errore:
    ((( mv: invalid option -- \  )))<--non in tutte le linee
    mv: quando vengono spostati piu' file l'ultimo argomento deve essere una
directory
perchč?
da console il comando che darei č proprio quello. cambia qualcosa con gli
script?
allego qui di seguito lo script. grazie
spero che qualcuno mi aiuti,che non ci sto dormendo (come si vede
dall'orario :o)))
ciao
f.
----8<-----8<-----8<-----8<-----8<-----8<-----8<-----8<--
#!/bin/sh
#file name space trimmer by xa:e:ro - arg[1] (opzionale): directory
CURFILENAME="";
NEWFILENAME="";
DEFAULTWKD=".";
ARGUMENT=$1;
WORKINGDIR=${ARGUMENT:-$DEFAULTWKD};
#echo "Directory di lavoro: $WORKINGDIR";
pushd $WORKINGDIR
for i in $(dir); do
  if [[ ${i:((${#i}-1)):1} == "\\" ]]; then
    CURFILENAME="${CURFILENAME}${i:0:((${#i}-1))}\\ ";
    NEWFILENAME="${NEWFILENAME}${i:0:((${#i}-1))}";
  else
    CURFILENAME="${CURFILENAME}${i}";
    NEWFILENAME="${NEWFILENAME}${i}";
    if [[ $CURFILENAME != $NEWFILENAME ]]; then
      mv ${CURFILENAME} ${NEWFILENAME}
      #echo "mv $CURFILENAME $NEWFILENAME";
    fi
    CURFILENAME="";
    NEWFILENAME="";
  fi
done;
popd
unset WORKINGDIR DEFAULTWKD CURFILENAME NEWFILENAME ARGUMENT;

[CUT]
ciao, ho dato un occhio allo script, cosi' dovrebbe andare
#!/bin/sh
#file name space trimmer by xa:e:ro - arg[1] (opzionale): directory
CURFILENAME="";
NEWFILENAME="";
DEFAULTWKD=".";
ARGUMENT=$1;
WORKINGDIR=${ARGUMENT:-$DEFAULTWKD};


 directory
...
Lo script non ho voglia di leggerlo, sorry :-))
Hai provato a mettere fra "" il nome del file con gli spazi quando lo passi
a mv?
-- 
  Giuseppe "Cowo" Corbelli \/\ My software: 
http://cowo.yoda2000.net
    **ANTI-SPAM** -- **Substitute IHATESPAM with cowo to reply by mail**
  -<! Computer programmers never die, they just get lost in the processing. !>-

 sto _CERCANDO_ di fare uno script che tolga gli spazi dai nomi dei files.
Provo a darti un'altra soluzione:
[1111][vale@damun:~]$ touch Film\ molto\ bello.avi
[1115][vale@damun:~]$ echo Film\ molto\ bello.avi | sed -e 's/ //g'
Filmmoltobello.avi
Un colpettino di sed e il problema e' risolto :-)
-- 
Sono un servitore del Fuoco Segreto, e reggo la fiamma di Anor.
A nulla ti servira' il fuoco oscuro, fiamma di Udun.
Torna nell'Ombra! Non puoi passare.

 Un colpettino di sed e il problema e' risolto :-)
ovvero
for i in * ; do mv "$i" `echo $i | sed -e 's/ //g'` ; done
ti dira'
mv: `pong.swf' and `pong.swf' are the same file
se non sono contenuti spazi, ma tant'e'. La if eventualmente
e' lasciata come esercizio.
--
mattia
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 e' lasciata come esercizio.
Oppure un ``tattico'' 2> /dev/null al mv	;-)


 Un colpettino di sed e il problema e' risolto :-)
ottimo :) il tutto in una sola riga...(se si fa -> for i in * ; do mv "$i"
`echo $i | sed -e 's/ //g'` ; done)
io sed, awk e compagnia bella purtroppo non li conosco molto bene.
anzi sarebbe la volta buona che me li imparo... anche le regexp che sono
delle brutte bestie... ;)
c'e' una pagina/howto/info in italiano per uno (o tutti) di questi...?
si, si, lo so che c'e' man regexp (non so se l'ho scritta giusta), ma la
trovo una delle piu' ostiche da capire, specialmente quando devi partire da
zero con regexp....
ciao
f.

 c'e' una pagina/howto/info in italiano per uno (o tutti) di questi...?
Uno per tutti mi sembra un po' difficile ;-) ma ti do comunque dei link:
awk:
http://www.linuxfocus.org/Italiano/September1999/article103.html
http://www.univ.trieste.it/~nircdc/doc/oldunix/DUcpl.15.1.html#REF15.1.cpl1
sed:
http://sed.sourceforge.net/grabbag/tutorials/
Introduzione alle regexp:
http://www.siforge.org/articles/2002/09/22-regex.html
Vedi un po' tu se c'e' qualcosa che ti puo' essere utile.
HTH
