El Miércoles, 29 de Marzo de 2006 19:42, Comventia Express escribió:
Hola a todos,
Tengo un problema que me ha llevado toda la tarde y no consigo verlo. Es probable que sea una g...llez y que no lo vea por el cansancio. Antes de apagar el ordenador os lo dejo en la lista por si a alguien se le enciende la luz.
Tengo un directorio con ficheros provenientes de windows que tienen espacios en el nombre. Mi intención es cambiar cada espacio por un guión bajo. Por ejemplo, Fichero 1.txt cambiarlo a Fichero_1.txt. Tengo del orden de 200 ficheros que responden al patron Fichero n.txt.
============ inicio script ================== #!/bin/sh DO= if [ "_$1" = "_-n" ] then DO=echo shift fi find $1 -depth -print |\ while read file do DIR=`expr "$file" : '\(\([^\/]*\/\)*\)\(.*\)'` FILE=`expr "$file" : "$DIR"'\(.*\)'` NFILE="$DIR"`echo "$FILE" | tr '[A-Z]' '[a-z]' | tr '][|!;:\ #$&~' _ ` if [ "$NFILE" != "$file" ] then if [ -f "$NFILE" ] then echo Warning: "$NFILE" exists "($file)" else echo Renaming: "$NFILE" $DO mv "$file" "$NFILE" fi fi done ================ Fin ================== * Krename es una opcion en modo grafico bastante potente, entre otras cosas por que antes de ejecutar la orden vas viendo "como seria el resultado"