Tengo un script que me está dando algunos problemas, sé que tengo que volver a hacerlo recursivamente, pero estoy teniendo algunos problemas. La secuencia de comandos debe cambiar el nombre de todos los archivos y carpetas en una carpeta determinada eliminando caracteres especiales como $ -,) (! Y reemplazando "" con "_"
Aquí está la pieza que necesito volver a hacer:
# Rename directories
find "$ORIG_DIR" -name "*" -type d| while read dname
do
NEW_DIR='echo "$dname" |sed -E 's/^[ \t]*//g; s/[ \t]*$//g; s/\./_/g; s/\,/_/g; s/ /_/g''
# Rename files
find "$ORIG_DIR" -name "*" -type f | while read fname
do
NEW_FNAME='echo "$fname" |sed -E 's/^[ \t]*//g; s/[ \t]*$//g; s/\./_/g; s/(.*)_/\./; s/\,/_/g; s/ /_/g''
if [ -e $NEW_FNAME ]
then
echo "$NEW_FNAME already exists. Not replacing $fname"
else
echo "Replacing $fname with $NEW_FNAME"
mv "$fname" $NEW_FNAME
fi
done
if [ -e $NEW_DIR ]
then
echo "$NEW_DIR already exists. Not replacing $dname"
else
echo "Replacing $dname with $NEW_DIR"
mv "$dname" $NEW_DIR
fi
done
END