diff --git a/clean_log.sh b/clean_log.sh index 4814662..0f056bb 100755 --- a/clean_log.sh +++ b/clean_log.sh @@ -65,10 +65,13 @@ fi # TODO truc améliorable : arriver à gérer plusieurs persos if [ -z "$4" ] then - myfunc() { - basename "$foldersource"/* .txt | cut -d_ -f2 | uniq + for file1 in "$foldersource"/* + do + myfunc() { + basename "$file1" .txt | cut -d_ -f2 | uniq } perso="$(myfunc)" + done else perso="$4" fi # Avoir une variable avec la majuscule au pseudo @@ -113,25 +116,25 @@ for logname in "$tmpfolder"/logcomplet_"$perso".txt # On va faire un seul gros fichier par année for year in {2009..2025} ; do #echo "${year}" - grep "^${year}/" "$logname" >> "$yearfolder"/"${year}".log + grep "^${year}/" "$logname" >> "$yearfolder"/"${year}".txt # Effacer les fichiers vides - [ -s "$yearfolder"/"${year}".log ] || rm -f "$yearfolder"/"${year}".log + [ -s "$yearfolder"/"${year}".txt ] || rm -f "$yearfolder"/"${year}".txt #echo "${year} traitée" # On vérifie si le fichier d'année existe et on ne traite que celles qui existent - if [ -f "$yearfolder"/"${year}".log ] ; then + if [ -f "$yearfolder"/"${year}".txt ] ; then # Puis on va faire un fichier par mois for month in {01..12} ; do # echo "${year}/${month} en cours" - grep "^${year}/${month}" "$yearfolder"/"${year}".log > "$monthfolder"/"${year}_${month}".log - [ -s "$monthfolder"/"${year}_${month}".log ] || rm -f "$monthfolder"/"${year}_${month}".log + grep "^${year}/${month}" "$yearfolder"/"${year}".txt > "$monthfolder"/"${year}_${month}".txt + [ -s "$monthfolder"/"${year}_${month}".txt ] || rm -f "$monthfolder"/"${year}_${month}".txt # On vérifie si le fichier année/mois existe et on ne traite que ceux qui existent - if [ -f "$monthfolder"/"${year}_${month}".log ] ; then - #echo "$monthfolder"/"${year}_${month}".log + if [ -f "$monthfolder"/"${year}_${month}".txt ] ; then + #echo "$monthfolder"/"${year}_${month}".txt # Puis un fichier par jour for day in {01..31} ; do #echo "${year}/${month}/${day} en cours" - grep "^${year}/${month}/${day}" "$monthfolder"/"${year}_${month}".log > "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".log - [ -s "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".log ] || rm -f "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".log + grep "^${year}/${month}/${day}" "$monthfolder"/"${year}_${month}".txt > "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".txt + [ -s "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".txt ] || rm -f "$dayfolder"/log_"$perso"_"${year}_${month}_${day}".txt #echo "${year}/${month}/${day} traité" done fi @@ -143,16 +146,16 @@ for logname in "$tmpfolder"/logcomplet_"$perso".txt fi done -#Tri des fichiers dans des dossiers du type Dossier_trié/année/mois/log.log +#Tri des fichiers dans des dossiers du type Dossier_trié/année/mois/log.txt # On récupère la date, en formattant comme pour les logs -for f in $dayfolder/*.log +for f in $dayfolder/*.txt do year=${f: -14:4} month=${f: -9:2} day=${f: -6:2} # On se fait une jolie variable qui imite la partie datée du nom des fichiers de log - log=log_"$perso"_"${year}_${month}_${day}.log" + log=log_"$perso"_"${year}_${month}_${day}.txt" # on créé le dossier de chaque mois dans les archives s'il n'existe pas mkdir -p "$folderrawsorted"/"$year"/"$month/" # on déplace ces logs dans leur archive @@ -166,15 +169,15 @@ echo "Les fichiers ont été découpés et rangés" ############# # Alors là, la misère... car on a des fichiers dans des sous-dossiers. # Le plus simple : tout remettre dans un dossier en vrac et traiter à partir de là. -find "$folderrawsorted" -maxdepth 4 -name '*.log' -exec cp {} "$tmparoundfolder"/ \; +find "$folderrawsorted" -maxdepth 4 -name '*.txt' -exec cp {} "$tmparoundfolder"/ \; -for mylog in "$tmparoundfolder/log"*.log +for mylog in "$tmparoundfolder/log"*.txt do justnamelog() { - basename -s .log "$mylog" + basename -s .txt "$mylog" } namelog="$(justnamelog)" - sourcelog="$tmparoundfolder/${namelog}.log" + sourcelog="$tmparoundfolder/${namelog}.txt" finallog="$tmparoundfolder2/${namelog}_alentours.txt" #./1analyse_new_logryzom.sh $sourcelog $finallog # Analyse des logs proprement dites @@ -222,7 +225,7 @@ done rm -r "$tmpfolder" # On compte et vérifie les fichiers -count=$(find $folderrawsorted -maxdepth 4 -name '*.log' | wc -l) +count=$(find $folderrawsorted -maxdepth 4 -name '*.txt' | wc -l) echo "Les sources sont triées en $count fichiers dans $folderrawsorted. Contrôlez ce nombre sur controlline_$perso.txt" countaround=$(find $folderaround -maxdepth 4 -name '*.txt' | wc -l) echo "$countaround fichiers ont été nettoyés et rangés dans $folderaround. "