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

Re: ficheros con espacios?



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
/ \



Reply to: