#!/bin/bash # Chemin vers le fichier CSV original original_file="exemple.csv" # Nom du fichier temporaire pour traitement temp_file="temp.csv" # Créer une copie du fichier original cp "$original_file" "$temp_file" # Ajouter une virgule à la fin de chaque ligne du fichier copié, uniquement si elle n'existe pas déjà awk '{if (substr($0,length,1) != ",") print $0","; else print $0;}' "$temp_file" > "${temp_file}.tmp" mv "${temp_file}.tmp" "$temp_file" # Fonction pour convertir un timestamp en date convert_to_date() { local timestamp_ms=$1 #date -d @"$((timestamp_ms / 1000))" +"%Y-%m-%d %H:%M:%S" date -d @"$((timestamp_ms / 1000))" +"%d/%m/%Y %H:%M" } # Fonction pour afficher une boîte ASCII ascii_box() { local box_text="$1" # Couleurs local color="\033[1;34m" # Bleu gras local reset="\033[0m" # Réinitialisation de la couleur # Définir la largeur de la boîte (en fonction de la taille du texte) local box_width=$(( ${#box_text} + 4 )) # Ajouter 4 pour les marges # Calculer le positionnement du texte (centré) local padding=2 # On ajoute 2 espaces de chaque côté du texte # Dessiner la boîte printf '┌' for (( j=0; j 0 )); then # Trier les timestamps pour garantir l'ordre croissant IFS=$'\n' sorted_timestamps=($(sort -n <<<"${valid_timestamps[*]}")) unset IFS # Débogage : afficher les timestamps triés # echo "Timestamps triés: ${sorted_timestamps[@]}" # Trouver la dernière itération (le plus grand timestamp) last_timestamp=${sorted_timestamps[-1]} # Convertir le dernier timestamp en date lisible last_iteration_date=$(convert_to_date "$last_timestamp") # Calculer la moyenne du temps entre les itérations if (( total_iterations > 1 )); then sum_intervals=0 for ((i = 1; i < total_iterations; i++)); do interval=$((sorted_timestamps[i] - sorted_timestamps[i - 1])) sum_intervals=$((sum_intervals + interval)) done # Moyenne du temps entre les itérations en millisecondes average_interval=$((sum_intervals / (total_iterations - 1))) # Conversion en jours average_days=$(echo "scale=2; $average_interval / 1000 / 60 / 60 / 24" | bc) else average_days="N/A" fi # Afficher les résultats pour ce type #echo "Compteur: $type" ascii_box "$type : $total_iterations" #echo "Total: $total_iterations" # Nombre total de timestamps echo "Dernier: $last_iteration_date" echo "Interval moyen: $average_days jours" #echo "--------------------------------------------" else #echo "Compteur: $type" ascii_box "$type" echo "Pas assez de données." #echo "--------------------------------------------" fi done < "$temp_file" # Supprimer le fichier temporaire après traitement rm "$temp_file"