From 845ac5c3aa118457537227fcfd1c5c31484d43ed Mon Sep 17 00:00:00 2001 From: Lil-Carpi Date: Sun, 14 Dec 2025 02:03:14 +0100 Subject: [PATCH] lista de actividades --- .obsidian/workspace.json | 4 +- .../.validador_de_contraseñas.sh.swp | Bin 12288 -> 0 bytes .../Ejercicios/Ejercicios - Funciones puras.md | 114 +++++++++++++++++- 3 files changed, 115 insertions(+), 3 deletions(-) delete mode 100644 Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/.validador_de_contraseñas.sh.swp diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 126baa0..4e36374 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -67,7 +67,7 @@ "state": { "type": "search", "state": { - "query": "", + "query": "path:\"Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/\" ", "matchingCase": false, "explainSearch": false, "collapseAll": false, @@ -238,9 +238,9 @@ }, "active": "34eecf2b06cedd2e", "lastOpenFiles": [ + "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/Ejercicios - Funciones puras.md", "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Extra.md", "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/validador_de_contraseñas.sh~", - "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/Ejercicios - Funciones puras.md", "Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/test", "BDD/SQL/Disparadores.md", "README.md", diff --git a/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/.validador_de_contraseñas.sh.swp b/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/.validador_de_contraseñas.sh.swp deleted file mode 100644 index 4c1b28ed9642f3cfb8c29830fceb36f0085ec498..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12288 zcmeI2zi%8x6vrnN0p|xlk{~E3UiMtvVV~~|L2(=%$|bp=2-^hzzy#x1WtW9M?$J~_bMn-ur_vP)+6}3cUwBli9T=-l`pHm=cM#;6x@DLs4W`(BwNVa0B zmZ^S@tBX9)l@p2brB=dFD~Y(NG*(6AOLUpaIUdRYHqk;L7JRK@+!wb$<7UXLY!$b= z?-Y3G6-eTx^2l!X;tRu7yOx5tpZ4yVdFYqr7T^?c3OEIv0!{&^fK$LJ;1qBQ{C5T7 z);4wx=8vood40Xz*3+(kb&XTNDc}@v3OEIv0!{&^fK$LJ;1qBQI0c*n51|4)U~FtV zW49hf@c8||{r~^(PcZfq_!8U#AA$El6O4faU;yj|yTA_c&*O~!3cdoLg6rU2a1pG5 z6)+8kz&@}O+}({a;Ae0Ld=0LH55apN0%w5)Z-V3Chh2=F2aDh|sDn{30uF*A*az<)9^3%u!74Zc4uAph9C#Y+ z1$)46(C|C(EwFmt03U!eU>>{;+~pK-3OEIv0{?#ngb@CUCT}XCu8K24d0KxYOcKVZ zNAvKCv!Cy0+3s(*TYIuzYyHK%;ElX~?okQT@PNuK@=l`oO$UiDC{euI-za&+8N0#= z*OFv?>yyGkISIlDVJz&4imL>&%n?!l`gpO{;tDm2A|&|L5pg&)wrUZRYLqi(F>?gk6fp`KGsjq49*~`m3e+&M zrdSHBAWBhuY`ihU}@m)ODltU~1L08$N19 zuRpZA0X~~jr47Ge8!Ku#XJIe9<<@=v;duHVN!S#F(gbre3|;OR~>9Rjl_^gRmHyc*uU((5$gZ| diff --git a/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/Ejercicios - Funciones puras.md b/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/Ejercicios - Funciones puras.md index 1e89e0c..a874a68 100644 --- a/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/Ejercicios - Funciones puras.md +++ b/Documentación personal/Mecanica de Unix/1. Bash Scripting Avanzado/Funciones puras/Ejercicios/Ejercicios - Funciones puras.md @@ -158,4 +158,116 @@ resultado=$(validador "$a" ) Bibliografía Web: - [Conversión de mayúsculas a minúsculas](https://es.stackoverflow.com/questions/346567/cómo-convierto-un-texto-a-mayúsculas-o-minúsculas-en-bash-zsh-o-osx) -- \ No newline at end of file +- [Using && and || in bash](https://kyleshevlin.com/using-and-and-or-in-bash-scripts/) +- [Bash operators](https://www.w3schools.com/bash/bash_operators.php) + + +# 3. Normalizador de nombres de archivos +--- +Objetivo: Tener un nombre de archivo asqueroso y limpiarlo. +##### Ejemplo de entradas: +```Shell +" Hola Mundo.txt" +"Mi fichero (copia) (1).png" +``` + +- `normalizar_nombre` - Elimina espacios extra, pasa a minúsculas, reemplazo de espacios con `_`. + +# 4. Parser de configuración estilo .ini +--- +Objetivo: Procesar una línea. No se toca ficheros en la función pura. +##### Funciones puras: +- `es_comentario` +- `es_seccion` +- `obtener_clave` +- `obtener_valor` +##### Parte impura: +- Leer el archivo línea por línea +- Imprimir errores o configuraciones + +Se entrena el patron: *la funcion pura opera en una linea, la impura itera por el fichero*. + +# 5. Mini motor de templates +--- +Objetivo: Reemplazo de variables del estilo: +```Shell +Hola {{NOMBRE}} +``` +##### Funcion pura +- `renderizar_template "$template" "$nombre"` +Debe sustituir `{{NOMBRE}}` por el valor que le pasas. +##### Parte impura: +- Leer `.template` +- Guardar la salida en un fichero final. + +Es composicion pura de texto, sin tocar nada externo. + +# 6. Filtro de logs +--- +Objetivo: Se procesa cada linea para extraer informacion util +##### Funciones puras +- `es_error` +- `extraer_fecha` +- `extraer_mensaje` +- `formato_limpio` +##### Parte impura +- Leer fichero de log gigante +- Guardar resultados filtrados + +Procesamiento funcional de toda la vida. Muy util. + +# 7. Comparador de versiones +--- +Ejemplo: +```Shell +compare_versions "1.2.10" "1.3.1" +``` +##### Salida pura: +- `-1` si v1 < `v2` +- `0` si iguales +- `1` si `v1` > `v2` +##### Parte impura +- Nada mas que capturar valores y mostrar los resultados. + +Perfecto para practicar manejo de arrays y logica sin tocar sistema. + +# 8. Generador de checksums "puro" +--- +No se calcula archivos, solo texto. +##### Funciones puras +- `checksum_simple "$texto"` - Ejemplo: suma ASCII mod 10000 +- `hash_basico "$texto"` +##### Parte impura +- Leer ficheros desde disco +- Pasar su contenido a la parte pura + +Obliga a pensar que es pureza y que no. + +# 9. Conversor de fecha +--- +Convierte formatos +Entrada: +```shell +2025-12-10 +``` +Salida de funcion pura: +```shell +10/12/2025 +``` +##### Impuro +Nada fuera de imprimir resultados + +Es un ejemplo simple para disciplina. + + +# 10. Mini-linter para Bash +--- +Suena más grande de lo que es. +##### Funcion pura +- `analizar_linea "$linea"` - Devuelve etiquetas como `"echo esta mal"`, `"mal identado"`, `"ok"`. +###### Funcion impura +- Leer archivo `.sh` +- Contar errores +- Mostrar resumen + +Mola detectar mierda en los scripts. Tambien fuerza a separar analisis puro de acciones impuras. \ No newline at end of file