#!/bin/bash # Script pour découper les tweets par mois à partir d'un fichier CSV # Vérifier si un fichier CSV est fourni en argument if [ $# -eq 0 ]; then echo "Usage: $0 " echo "Exemple: $0 twitter-SearchTimeline-1780757216075.csv" exit 1 fi CSV_FILE="$1" # Vérifier si le fichier existe if [ ! -f "$CSV_FILE" ]; then echo "Erreur: Le fichier '$CSV_FILE' n'existe pas." exit 1 fi echo "Découpage des tweets par mois à partir de: $CSV_FILE" # Créer un répertoire pour les fichiers de sortie OUTPUT_DIR="tweets_par_mois" mkdir -p "$OUTPUT_DIR" # Extraire l'en-tête head -n 1 "$CSV_FILE" > "$OUTPUT_DIR/header.csv" # Extraire les mois uniques (format YYYY-MM) en ignorant l'en-tête MOIS=$(tail -n +2 "$CSV_FILE" | cut -d',' -f1 | sed 's/"//g' | cut -d'-' -f1,2 | sort -u | grep -E '^[0-9]{4}-[0-9]{2}$') echo "Mois trouvés: $MOIS" # Pour chaque mois, créer un fichier séparé for mois in $MOIS; do echo "Traitement du mois: $mois" output_file="$OUTPUT_DIR/tweets_$mois.csv" # Copier l'en-tête cp "$OUTPUT_DIR/header.csv" "$output_file" # Extraire les tweets de ce mois tail -n +2 "$CSV_FILE" | grep "^$mois-" >> "$output_file" # Compter le nombre de tweets nb_tweets=$(($(wc -l < "$output_file") - 1)) echo " → $nb_tweets tweets sauvegardés dans $output_file" done # Nettoyer le fichier d'en-tête temporaire rm "$OUTPUT_DIR/header.csv" echo "" echo "Découpage terminé! Les fichiers sont dans le répertoire '$OUTPUT_DIR/'" echo "Résumé des fichiers créés:" ls -la "$OUTPUT_DIR"