#!/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]}
.