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

Re: problema con variables... [cambio la pregunta O8) ]



jgarcian@retevision.es wrote:
> ...
>       la pregunta en verdad es esta:
> 
>       quiero hacer un script que me cambie los nombres de estos
>       ficheros/directorios
>       que contienen espacios en blanco...
> 
>       hago esto que funciona...
> 
>       IFS="" ; for i in `ls -R` ; do q=`echo $i | sed s/' '/_/g` ; echo $i
>       ; done
> ...
No te creo :)
el nombre de un archivo con blancos que resulta de ls -R
es interpretado dentro de la lista del for como varios elementos
de la lista.
Distinto sería si haces un

for i in *
ó
for i in */*

en tal caso cada archivo es un elemento de la lista del for y
hay alguna chance de que la cosa funcione.

Para conseguir hacer la operación en un árbol de directorios
lo único que se me ocurre es hacer un find:

find . -name '*' -exec ./reno \{\} \;

donde ./reno es un pequeño script:
#! /bin/bash
q=$(echo $1 | sed s/' '/_/g)
mv "$1" $q

Esto funciona +o-:
-Se queja de que estás tratando de renombrar de un archivo
al mismo (en los casos en que no tienen espacio en el nombre).
-Si un directorio tiene un espacio en el nombre primero lo
renombra y luego intenta renombrar los archivos que contiene.
Y como el directorio esta cambiado ya no encuentra los archivos
con el viejo nombre. Se arregla ejecutando de nuevo el comando.

Intenté hacerlo todo en una línea pero no me salió: no conseguí
que cada caracter especial sea interpretado por quien corresponde:
{ } y ; por find, algunas comillas por bash, el | por no se quién...

-- 
Saludos,
                                                     O__
Enzo.                                                ,>/
____________________________________________________()_\()____
Enzo A. Dari  |  Instituto Balseiro / Centro Atomico Bariloche
8400-S. C. de Bariloche, Argentina | darie@cab.cnea.gov.ar
Phone: 54-2944-445208, 54-2944-445100 Fax: 54-2944-445299
Web page: http://cabmec1.cnea.gov.ar/darie/darie.htm



Reply to: