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

Re: Strano (imho) comportamento di bash/sed



* InSa <REMOVEinsa_hc@yahoo.it> <
> [2006-06-29]:
>  Ciao a tutti,
> 
>  sto facendo uno scriptino che rinomina alcuni file utilizzando bash+sed.
>  Lo scriptino è (più o meno) questo:
> 
>  -----------------------
>  #!/bin/bash
>  # renames.sh
>  # basic file renamer
>       
>  for i in "$( ls *est )"; 
>  do 	
>      # faccio delle mega-trasformazioni
>      temp=$(echo "$i" | sed -e "s/\./\ /"g)

Prova a usare ...|sed -e "s/\./\\\ /"g)
                               ^^^^^
>  ...
>  Una prima cosa strana è questa: se io lo eseguo in una directory dove
>  ho 3 file:
> 
>  stampa 
>  ... 
>  e non, come mi aspetterei io,
> 
>  originale.01.est
>  trasformato01.est
>  originale.02.est
>  trasformato02.est
>  originale.03.est
>  trasformato03.est
> 
Forse perche` il punto "." ha la precedenza?

>  La seconda è che lo script non funziona proprio, il "mv" da questo
>  errore:
> 
>  mv: impossibile fare stat di `originale.01.est\noriginale.02.est
>  \noriginale.03.est': No such file or directory
> 
Una volta sostituito lo spazio al punto, il file viene letto come
"originale" (la parte restante viene persa.
No so se con quell'accorgimento delle '\\\' di cui sopra rimane il
problema; se si, prova a sostituire gli spazi con un carattere (ad es.
'#', che poi elimini primi dell'ultima sostituzione.

>  ...
> 
HTH

-- 
[Perche' usare Win$ozz (dico io) se ..."anche uno sciocco sa farlo.    \\?//
 Fa' qualche cosa di cui non sei capace!"   (diceva Henry Miller) ]    (°|°)
 Ennio. (Please change . for .dot. and @ for .at. in my Reply-To)       )=(



Reply to: