IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

cumul minute heure seconde


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut cumul minute heure seconde
    Bonjour,

    J'ai les variables suivantes : HH:MM:SS

    00:01:52
    01:25:23
    00:52:23


    je veux les additionner via un script en ksh. Comment puis je faire pour cumuler les heures, minutes et secondes ?

    Merci

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    de manière "'interactive" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    #!/bin/bash
    
    for date in $@; do
          IFS=":"
          while read Heures Minutes Secondes; do
             ssTotalSec=$(( ((${Heures}*3600)) + ((${Minutes}*60)) + ${Secondes} ))
             TotalGen=$(( $TotalGen + $ssTotalSec ))
          done <<< "$date"
    #      shift # inutile
    done
    
    date -ud @$TotalGen +%T
    u cf. la remarque de jmelyn (infra)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Scripts/addDate.sh 00:01:52 01:25:23 00:52:23
    02:19:38
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Je suppose que "fichier" contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    00:01:52
    01:25:23
    00:52:23
    En utilisant la commande awk, on obtient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -F ':' '{T+=$1*3600+$2*60+$3} END {print strftime("%H:%M:%S",T,1)}' fichier
    Edit: Attention N_BaH, ton résultat n'est pas correct à cause du changement d'heure (il n'y a que 2h19mn38s). D'où chez moi le 3e argument 1 de la fonction strftime(). Il te faut en plus l'option -u (UTC): date -u -d @GenTotal +%T

  4. #4
    Membre éclairé
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Par défaut
    j'ai recopié les solutions que vous m'avez fourni et ça ne fonctionne pas.

    Il met plein d'erreur.

    pour info, je fais du ksh.

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    J'ai testé sous ksh, et ça fonctionne. Quels sont les messages d'erreurs ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre émérite Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par défaut
    Que donne les commandes uname -a et head -1 /etc/issue ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/04/2008, 08h27
  2. découpage secondes / minutes / heures
    Par astrofan dans le forum C++
    Réponses: 14
    Dernier message: 12/11/2007, 12h17
  3. Jour Mois anné, heure minute et seconde...
    Par SangKou dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 29/11/2005, 13h43
  4. [Dates] Jour Mois anné, heure minute et seconde...
    Par SangKou dans le forum Langage
    Réponses: 4
    Dernier message: 29/11/2005, 08h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo