LinuxParty
Hay veces, que los administradores de Linux, los programadores, los editores de contenido, como pueden ser editores de imágenes o vídeos... necesitan trabajar con muchos ficheros... Cuando se trata de muchos ficheros, es mejor trabajar con ficheros que no tengan espacios ni caractereres extraños, porque es mejor para buscarlos, para copiarlos o moverlos a algún sitio.
Esto me llevó a hacer un script para poder trabajar con un script que no necesitara muchos interactuaciones para que funcionara bien. Por lo que el script hace un trabajo muy sencillo, le introduces el el nombre del fichero, y directamente te lo devuelve en el mismo directorio sin los caracteres extraños.
Vamos a proceder a poner el código fuente del script para que puedas verlo, después lo puedes colocar en:
/usr/local/bin
o
$HOME/bin
(tal vez tengas que crear el directorio bin
, para tal proceso)
Nombre del script: renombraquitandoespacios.sh
#!/bin/bash
# Nombre del script: renombraquitandoespacios.sh
# Obtenemos en la "$Entrada" el nombre del fichero a procesar Entrada="$1" echo " Entrada: -> $Entrada" # C AM B IA M O S espacio por - puntos por - ( por - ) por - [ por - ] por - Pre0=`echo "$Entrada" | sed s/' '/'-'/g | sed s/'\.'/'-'/g | sed s/'('/'-'/g | sed s/')'/'-'/g | sed s/'\['/'-'/g | sed s/'\]'/'-'/g` # Caracteres raros por elementos vacío. Pre1=`echo "$Pre0" | sed s/'!'/''/g | sed s/'¡'/''/g | sed s/'?'/''/g | sed s/'¿'/''/g | sed s/','/''/g | sed s/'='/'-'/g | sed s/"'"/""/g` # En PreSalida, debe estar la última entrada de "PreX", sea Pre0, Pre1, Pre2... PreSalida=$Pre1 # Comprobamos que el primer caracter no sea "-", y si lo es, lo eliminamos. firstchar=$(expr substr $PreSalida 1 1) if [ "$firstchar" == "-" ] ; then echo "Primer caracter:" $firstchar PreSalida=`echo $PreSalida | sed -e 's/^-/./'` fi # Sustituimos: -mp4 por .mp4 -mkv por .mkv -avi por .avi SalidaOK0=`echo "$PreSalida" | sed s/'-mp4'/'.mp4'/g | sed s/'-mkv'/'.mkv'/g | sed s/'-avi'/'.avi'/g` SalidaOK1=`echo "$SalidaOK0" | sed s/'-jpg'/'.jpg'/g | sed s/'-png'/'.png'/g | sed s/'-ico'/'.ico'/g` SalidaOK2=`echo "$SalidaOK1" | sed s/'-docx'/'.docx'/g | sed s/'-xlsx'/'.xlsx'/g | sed s/'-dbx'/'.dbx'/g` SalidaOK3=`echo "$SalidaOK2" | sed s/'-doc'/'.doc'/g | sed s/'-xls'/'.xls'/g | sed s/'-txt'/'.txt'/g` SalidaOK4=`echo "$SalidaOK3" | sed s/'-conf'/'.conf'/g | sed s/'-txt'/'.txt'/g | sed s/'-sh'/'.sh'/g` SalidaOK5=`echo "$SalidaOK4" | sed s/'-webm'/'.webm'/g | sed s/'-svg'/'.svg'/g | sed s/'-cpp'/'.cpp'/g` SalidaOK6=`echo "$SalidaOK5" | sed s/'-mpg'/'.mpg'/g | sed s/'-wmv'/'.wmv'/g | sed s/'-gif'/'.gif'/g` # Añada como Salida, la última entrada de "SalidaOK(X)" Salida=$SalidaOK6 echo "Salida: -> $Salida" mv -v "$Entrada" "$Salida"
El funcionamiento sería el siguiente:
[javier@localhost dwhelper]$ renombraquitandoespacios.sh \'Horizonte\'\ \(16062022\)\,\ completo\ y\ en\ HD.mp4
Entrada: -> 'Horizonte' (16062022), completo y en HD.mp4
Salida: -> Horizonte--16062022--completo-y-en-HD.mp4
renamed ''\''Horizonte'\'' (16062022), completo y en HD.mp4' -> 'Horizonte--16062022--completo-y-en-HD.mp4'
-
Scripting
- Iniciar una aplicación o un programa automáticamente desde el Cron en Linux
- Operaciones matemáticas en Shell Scripts
- 30 formas de validar archivos de configuración o scripts en Linux
- Operaciones artiméticas en Shell Scripts
- Cómo intercambiar el contenido de dos archivos en Linux
- Buscar directorios vacíos en Linux y borrarlos si procede.
- Shell Script Linux: Renombra quitando espacios
- Usar con crontab - último sábado del mes
- Shell Script de Linux para analizar un Fichero Access.log
- Analizar ficheros log de Linux con Scripts
- woof Código fuente
- Como tener seguro, protegido y encriptado tu Navegador Web Firefox (versión mejorada - versión 3)
- Arrays en Bash y Loops: iterar a través de los valores de la matriz
- Pasar una variable a AWK mediante la Shell.
- System Tar and Restore: un versátil script de copia de seguridad del sistema para Linux