Last active
February 2, 2024 03:47
-
-
Save manueldev/51af3d6fdeb6eb2aa41346513085a0b6 to your computer and use it in GitHub Desktop.
comandos interesantes en bash
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/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