#!/bin/bash
########################################################
# Objet : Extraire les stats de cavalier
# 
# Auteur : 
# Date   : 2025/01/10 V1.0
########################################################
vers="1.0"
#
# Def des constantes
cd /home/jlc/Fortran
FIL="2025-01-25-all.txt"

# Initialisation
# Extraire les lignes mouvements
# Si les lignes en X et Y different on extrait a nouveau
cmx=1 ; cmy=2
until [ $cmx -eq $cmy ]
do
	cat $FIL | grep ^D > mx
	cat $FIL | grep ^4 > my
	cmx=$(cat mx | wc -l)
	cmy=$(cat my | wc -l)
done
#cho "=========================================="
uptime

# Recuperer le compte des mouvements par solution
# Eliminer les espaces en double
cat $FIL | grep Solution | sed 's/  */ /g' | cut -d " " -f 3 | sort -n > mc
mc_mini=$(cat mc | head -n 1)
mc_maxi=$(cat mc | tail -n 1)
total=$(cat $FIL | tail -n 5 | head -n 1 | cut -d " " -f 4)
# Afficher la taille du fichier resultats
ls -al | grep $FIL
echo -n "Nbr solutions        = "; printf "%'.3i " $cmx | sed 's/,/ /g'

# La commande "uniq -c -d" affiche les lignes identiques consecutives
# Il faut donc trier les lignes X et compter les sequences de lignes identiques
echo " -> Solutions identiques = "$(cat $FIL|grep ^D|sort|uniq -c -d|wc -l)
if [ $(cat $FIL|grep ^D|sort|uniq -c -d|wc -l) -gt 0 ]
then
	echo -n "Plusieurs solutions identiques trouvees"
	cat $FIL|grep ^D|sort|uniq -c -d
fi

# Recherche des solutions circulaires
# Calcul long sous BASH 
cmy=0 ; a=0 
#echo "Recherche en des solutions fermees"
# la cde rev inverse l'ordre des car d'une ligne
# AbCd devient dCbA
# la cde cut -c 1 extrait le premier car d'une ligne
cat mx | rev | cut -c 1 > rlx # rlx contient le dernier car de chaque ligne de mx
cat my | rev | cut -c 1 > rly # idem pour rly
paste rlx rly | sed 's/\t//g' > rcc # rcc contient la concatenation de rlx et rly
cmy=$(cat rcc | grep -E 'C2|E2|F3|F5|E6|C6|B5|B3' | wc -l)
#=======================

mc_curt=$(cat $FIL | tail -n 5 | grep Fin | sed 's/  */ /g' | cut -d " " -f 3)

echo -n "Nombre de solutions fermees = "; printf "%'.3i " $cmy | sed 's/,/ /g'
a=$(cat $FIL | grep Solution | tail -n 1 | sed 's/  */ /g')
cur_s=$(echo $a | cut -d " " -f 3)
tot_s=$(echo $a | cut -d " " -f 7)
cmx=$(cat mx | wc -l)
let "mc_avrg=tot_s/cmx"

echo -n "Nombre total de placements  = "; printf "%'.3i \n" $tot_s | sed 's/,/ /g'
echo -n "Mini = "; printf "%'.3i " $mc_mini | sed 's/,/ /g'
echo -n " Courant = "; printf "%'.3i " $cur_s | sed 's/,/ /g'
echo -n " Maxi = "; printf "%'.3i " $mc_maxi | sed 's/,/ /g'
echo -n " Moyenne = "; printf "%'.3i \n" $mc_avrg | sed 's/,/ /g'
echo "Temp CPU (jj-hh:mm:ss) = "$(ps -ef | grep "a.out" | grep '?' | sed 's/  */ /g' | cut -d " " -f7)
cd $HOME
echo "=========================================="
cp /home/jlc/Fortran/$FIL /var/www/site-avram/ext-data/
cat /home/jlc/Fortran/Stats.txt | tail -n 8 > /var/www/site-avram/ext-data/Stat-2.txt

