1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#!/bin/bash # Archivo de log archivo_log="archivo.log" # Declaración de array asociativo para contabilizar errores declare -A errores # Leer archivo de log línea por línea while read -r linea; do # Extraer el tipo de error de la línea tipo_error=$(echo "$linea" | cut -d ':' -f 1) # Incrementar la cuenta de errores en el array asociativo ((errores["$tipo_error"]++)) done < "$archivo_log" # Mostrar resultados echo "Cantidad de errores por tipo:" for tipo_error in "${!errores[@]}"; do echo "Tipo: $tipo_error - Cantidad: ${errores[$tipo_error]}" done |
En este ejemplo, se utiliza un array asociativo en bash (errores
) para contabilizar la cantidad de errores por tipo desde un archivo de log ($archivo_log
). El archivo de log se lee línea por línea utilizando un bucle while
y el comando read
, y luego se utiliza el comando cut
para extraer el tipo de error de cada línea, asumiendo que los errores están separados por dos puntos («:») en el archivo de log. Luego, se incrementa la cuenta de errores en el array asociativo utilizando la sintaxis errores["$tipo_error"]++
.
Finalmente, se muestra el resultado en la salida, iterando sobre las claves del array asociativo ("${!errores[@]}"
) y mostrando el tipo de error y la cantidad de errores correspondiente utilizando la sintaxis ${errores[$tipo_error]}
.