Skip to content

Instantly share code, notes, and snippets.

@manueldev
Last active February 2, 2024 03:47
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save manueldev/51af3d6fdeb6eb2aa41346513085a0b6 to your computer and use it in GitHub Desktop.
Save manueldev/51af3d6fdeb6eb2aa41346513085a0b6 to your computer and use it in GitHub Desktop.
comandos interesantes en bash
Renombra los archivos agregando "LIQ.2" al comienzo
for f in *;do mv -v "$f" "LIQ.2 ${f%.*}.${f##*.}";done
Borra todas las carpetas con x nombre:
find . -type d -name "LIQUIDACIONES 2024" -exec rm -r {} \;
Crea una carpeta "LIQUIDACIONES 2024" en cada empleado menos en finiquitados:
find * -maxdepth 0 -type d ! -name "FINIQUITADOS" -exec mkdir -p {}/LIQUIDACIONES\ 2024 \;
Este comando considera la estructura que proporcionaste, toma el tercer elemento como el segundo nombre y el cuarto elemento como el apellido, y genera el nuevo nombre utilizando el primer apellido y el primer nombre. Ejecútalo desde el directorio correcto y realiza pruebas en un conjunto de archivos antes de aplicarlo a tus archivos principales.
for archivo in *.pdf; do [ -f "$archivo" ] && nombre_sin_extension=$(basename "$archivo" .pdf) && nuevo_nombre=$(echo "$nombre_sin_extension" | awk '{ if ($2 == "del") { print $4, $1 } else { print $3, $1 } }') && mv "$archivo" "${nuevo_nombre}.pdf"; done
#!/bin/bash
renombrado() {
echo "======================"
echo "======================"
echo "Ingresa el numero de mes:"
read user_input
echo "Ingresaste: $user_input"
echo "======================"
echo "======================"
for f in *.pdf; do
if [[ -f $f ]]; then
nuevo_nombre="LIQ.$user_input ${f%.*}.${f##*.}"
mv -v "$f" "$nuevo_nombre"
echo "Moviendo $f a $nuevo_nombre"
fi
done
echo "======================"
echo "Agregado LIQ."
echo "======================"
}
reordenar_nombre() {
echo "======================"
echo "======================"
for f in *.pdf; do
nombre_sin_extension="${f%.pdf}"
# Dividir el nombre del archivo en palabras
palabras=($nombre_sin_extension)
# Obtener la cantidad de palabras en el nombre del archivo
cantidad_palabras=${#palabras[@]}
# Renombrar el archivo según la cantidad de palabras
if [ $cantidad_palabras -eq 3 ]; then
nuevo_nombre="${palabras[1]} ${palabras[0]}"
elif [ $cantidad_palabras -eq 4 ]; then
nuevo_nombre="${palabras[2]} ${palabras[0]}"
elif [ $cantidad_palabras -eq 5 ]; then
nuevo_nombre="${palabras[3]} ${palabras[0]}"
else
# Si la cantidad de palabras no es 3, 4 o 5, no hacemos nada
continue
fi
# Renombrar el archivo
mv "$f" "$nuevo_nombre.pdf"
done
echo "Renombrado a apellido + nombre."
echo "======================"
echo "======================"
renombrado
}
mover() {
echo "======================"
echo "======================"
echo "Ingresa la ruta de destino:"
read user_input
echo "Ingresaste: $user_input"
echo "======================"
echo "Ingresa el año de las liquidaciones:"
read anio
echo "Ingresaste: $anio"
echo "======================"
for archivo in *.pdf; do
nombre_sin_extension="${archivo%.pdf}"
# Dividir el nombre del archivo en palabras
palabras=($nombre_sin_extension)
# Obtener la cantidad de palabras en el nombre del archivo
cantidad_palabras=${#palabras[@]}
# Verificar que haya al menos dos palabras en el nombre del archivo
if [ $cantidad_palabras -ge 2 ]; then
# Obtener las últimas dos palabras como la carpeta de destino
carpeta_destino="${palabras[$cantidad_palabras - 2]} ${palabras[$cantidad_palabras - 1]}"
# Mover el archivo a la carpeta de destino
mv "$archivo" "$user_input/$carpeta_destino/LIQUIDACIONES $anio/"
fi
done
echo "======================"
echo "Archivos movidos."
echo "======================"
}
menu(){
echo "======================"
echo "======================"
echo "Tareas:"
echo "1. Renombrar archivos."
echo "2. Mover archivos a carpetas en Drive."
echo "0. Salir"
echo "======================"
echo "======================"
echo "Ingresa el numero de la tarea:"
read user_input
echo "Ingresaste: $user_input"
case $user_input in
"1")
echo "Seleccionaste la Opción 1."
reordenar_nombre
;;
"2")
echo "Seleccionaste la Opción 2."
mover
;;
"0")
echo "Seleccionaste la Opción 0."
exit
;;
esac
menu
}
menu
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment