• [^] # Re: un bout de shell...

    Posté par (site web personnel, Mastodon) . En réponse au message Avent du Code, jour 1. Évalué à 1.

    (Batterie à plat, j'ai du attendre de rentrer pour écrire cette seconde partie.)
    Pour l'or, je modifie la fin en remplaçant la dernière ligne par :

    -sort -k 2 -t ':' -n "$_of" | tail -n 1
    +
    +_ec=0 # big total calories count
    +_er=0 # current calories count
    +for line in $( sort -k 2 -t ':' -n "$_of" | tail -n "${3:-1}" )
    +do
    + echo "$line"
    + _er=$( echo "$_s" | cut -d ':' -f 2 )
    + _ec=$(( _ec + _er ))
    +done
    +echo
    +echo "∑${3:-1}= $_ec"

    Il s'agit de scripts en mode dix minutes (mais en ayant passé le temps sur les inputs checks hum) ...et ça se ressent

    real 0m0.259s
    user 0m0.078s
    sys 0m0.139s
    

    Je pense que les nombreuses rediretions de sortie dans la première boucle n'aident pas ; une première amélioration serait de tout écrire une fois. Il faudra profiter de ce refactoring pour inverser les paramètres d'entrée 2 et 3...

    "It is seldom that liberty of any kind is lost all at once." ― David Hume