Foros del Web » Administración de Sistemas » Unix / Linux »

Script Bash en Linux

Estas en el tema de Script Bash en Linux en el foro de Unix / Linux en Foros del Web. Buenas tardes, Necesito hacer un script que sea capaz de sustituir los espacios en los nombres de archivos o directorios a un determinado directorio, por ...
  #1 (permalink)  
Antiguo 02/06/2013, 10:10
 
Fecha de Ingreso: abril-2012
Mensajes: 28
Antigüedad: 12 años, 6 meses
Puntos: 0
Script Bash en Linux

Buenas tardes,

Necesito hacer un script que sea capaz de sustituir los espacios en los nombres de archivos o directorios a un determinado directorio, por un guión bajo. El usuario debe confirmar cada modificación de nombre. No se incluirán en la búsqueda los directorios recursivamente. También se han de gestionar los errores posibles, como no se tengan permisos de lectura sobre el directorio destino.
Y la verdad es que no tengo ni idea , por ello necesito un poco de ayuda para realizar dicho script.

Tengo esto del script , esto cambia bien tanto carpetas como fichero pero , se supone que el -i del mv es lo que hace que pida confirmacion por cada fichero sustituido y no esta funcionando.

#!/bin/sh
find . -name '* *' | sort | while read FILE
do
NEWFILE=`echo ${FILE} | sed 's/ /_/g;'`
mv -i "${FILE}" ${NEWFILE}
echo ${NEWFILE}
done



Alguien podria echarme una mano con esto ?

Gracias y un saludo

Última edición por cromero2416; 02/06/2013 a las 10:55
  #2 (permalink)  
Antiguo 03/06/2013, 02:59
Avatar de zarwar  
Fecha de Ingreso: mayo-2013
Ubicación: Madrid
Mensajes: 77
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Script Bash en Linux

Hola cromero2416

La opción -i idica interactivo, pero lo que te pregunta es si quieres sobreescribir.

Vas a tener previamente, que pedir la variable algo parecido a:

echo "Deseas continuar (s/n):"
read respuesta
if [ $respuesta == "s" ]
then
echo "La respuesta es:" $respuesta
fi
else
echo "La respuesta es: " $respuesta
fi

Un saludo
__________________
Entra en mi blog sobre base de datos Oracle:
http://mundodb.es
  #3 (permalink)  
Antiguo 03/06/2013, 04:11
 
Fecha de Ingreso: abril-2012
Mensajes: 28
Antigüedad: 12 años, 6 meses
Puntos: 0
Respuesta: Script Bash en Linux

Probe de hacer eso que em dices de poner un if para controlar pero al estar dentro del find que tiene un do y done al final da errores , entiendo poque al estar dentro de dicho bucle no es compatible con el if o no se, el caso es que no tengo ni idea jajaaj
  #4 (permalink)  
Antiguo 03/06/2013, 08:31
Avatar de zarwar  
Fecha de Ingreso: mayo-2013
Ubicación: Madrid
Mensajes: 77
Antigüedad: 11 años, 6 meses
Puntos: 4
Respuesta: Script Bash en Linux

Hola cromero2416

Me sobraba un "fi":

Cita:
echo "Deseas continuar (s/n):"
read respuesta
if [ $respuesta == "s" ]
then
echo "La respuesta es:" $respuesta
else
echo "La respuesta es: " $respuesta
fi
Añadido:
Aún así no funciona por estar dentro de un bucle, que ya utiliza "read", cada uno por su parte funcionaría
__________________
Entra en mi blog sobre base de datos Oracle:
http://mundodb.es

Última edición por zarwar; 03/06/2013 a las 08:56

Etiquetas: bash, linux, usuario
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:54.