first commit
This commit is contained in:
@@ -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 <fichier_csv>
|
||||||
|
```
|
||||||
|
|
||||||
|
### 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`.
|
||||||
Executable
+57
@@ -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 <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"
|
||||||
Reference in New Issue
Block a user