commit 021e8e27e895e50c279690848923c1d01fb535da Author: skylanix Date: Sun Jun 28 21:44:43 2026 +0200 first commit diff --git a/README.md b/README.md new file mode 100644 index 0000000..d7b293c --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ +# Découper Tweets par Mois + +Script bash pour diviser un fichier CSV de tweets volumineux en fichiers mensuels individuels. + +## Fonctionnement +Le script analyse la première colonne d'un fichier CSV (supposée être une date au format `YYYY-MM-DD`), identifie les mois uniques, et génère un fichier CSV pour chaque mois trouvé dans le répertoire `tweets_par_mois`. + +## Prérequis +- Environnement Unix/Linux. +- Outils standards installés : `bash`, `head`, `tail`, `cut`, `sed`, `sort`, `grep`, `mkdir`, `cp`, `wc`, `rm`, `ls`. + +## Utilisation + +```bash +./decouper_tweets_par_mois.sh +``` + +### Exemple +```bash +./decouper_tweets_par_mois.sh Altéré\ pour\ IA\ -\ tweet_pseudo_2026.csv +``` + +## Résultat +Les fichiers générés sont placés dans le répertoire `tweets_par_mois/` sous la forme `tweets_YYYY-MM.csv`. diff --git a/decouper_tweets_par_mois.sh b/decouper_tweets_par_mois.sh new file mode 100755 index 0000000..b3b4ef9 --- /dev/null +++ b/decouper_tweets_par_mois.sh @@ -0,0 +1,57 @@ +#!/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" \ No newline at end of file