On Tue, Jun 24, 2003 at 06:37:59AM +0200, David Ballano wrote:
> Hola chicos,
> 

Ol�.

>  
> 
> Tengo un problemilla,
> 
>  
> 
> Resulta que tengo unos ficheros en un directorio, estos ficheros los quiero
> mover a otro mediante un for  Etc �
> 
> El problema es que algunos de los ficheros tienen espacios Ej. :  fichero
> numero 1.rar
> 
>  
> 
> Lo que hago es m�s o menos esto :  for i in `ls` do  bla bla bla done
> 
> Pero claro el for me coge palabra a palabra y no todo el nombre� he estado
> pensando como cambiar el nombre del fichero o ficheros con rename con mv y
> con sed pero claro sigo teniendo el mismo problema.
> 
>  

   En Bash para almacenar un string con espacios en blanco en una
   variable debes poner "" o '', aunque difirieren en su
   comportamiento. En el caso del for deber�as utilizar "", es decir:

                   for i in "`ls`": 
                       do
                        ......
                        ......
                   done


   Tengo un script para cambiar los espacios en blanco por '_' (man�as...). Se
   puede hacer mejor, pero asi va funcionando (: Aqu� te lo pongo por
   si quieres usarlo.


            #!/bin/sh
            #
            # relb.sh 
            #
            # renomea eliminado brancos
            #

            E_SENARG=65   # sinal devolta no caso de q nom ache nengun argumento

            if [ -z "$1" ]
            then 
                echo "`basename $0`: Uso: `basename $0` ficheiro [ficheiros]"
                exit $E_SENARG
            fi

            until [ -z "$1" ]
            do
              if [ -e "$1" ]
              then 
                    mv "$1" `echo $1 | sed y/\ /_/ | tr A-Z a-z`
              else
                    echo "`basename $0`: ^e: ficheiro $1 nom existe"
              fi
              shift
           done

           exit 0


> 
> Otra cosa que se me ha ocurrido es: como puedo poner un espacio � � para que
> Linux lo entienda, c�digo ASCII?�   creo recordar que en C pod�a poner el
> valor ASCII de las teclas pero es que lo que estoy haciendo es shellscript�
> total que no me sale na..
> 

  Utilizando '\ ' .  nombre largo de archivo -> nombre\ largo\ de\ archivo

          $ touch nombre\ largo\ de\ archivo

>  
> 
> Me pod�is iluminar un poco no caigo y presiento que podr�a ser una tonter�a,


     - Bash-Prog-Intro-HOWTO (en el paquete doc-linux-es)
     - abs-guide (tambi�n como paquete)


> gracias!
> 
>  

   Nada. Xau!
>  
> 

-- 
Porqu� loitar e matar, se podes amar e sonhar

/"\
\ /  CAMPANHA DA FITA ASCII - CONTRA MAIL HTML
 X   ASCII RIBBON CAMPAIGN - AGAINST HTML MAIL
/ \

Responder a