Files
decouper_tweets_par_mois/decouper_tweets_par_mois.sh
T
2026-06-28 21:44:43 +02:00

57 lines
1.6 KiB
Bash
Executable File

#!/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 <fichier_csv>"
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"