GNU/Linux >> Tutoriels Linux >  >> Linux

Un moyen simple de convertir HH:MM:SS (heures:minutes:secondes.secondes fractionnées) en secondes

Essayez awk . En prime, vous pouvez conserver la fraction de seconde.

echo "00:20:40.25" | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3 }'

Essayez ceci :

T='00:20:40.28'
SavedIFS="$IFS"
IFS=":."
Time=($T)
Seconds=$((${Time[0]}*3600 + ${Time[1]}*60 + ${Time[2]})).${Time[3]}
IFS="$SavedIFS"

echo $Seconds

($ ) divise basé sur le séparateur (IFS ).

${ [ ]} renvoie l'élément du à l' .

$(( )) exécute l'expression arithmétique.

J'espère que cela vous aidera.


Cela fonctionnera même si vous ne spécifiez pas d'heures ou de minutes :echo "04:20:40" | sed -E 's/(.*):(.+):(.+)/\1*3600+\2*60+\3/;s/(.+):(.+)/\1*60+\2/' | bc


Linux
  1. Ny Way To Print Value Inside Variable Inside Single Quote?

  2. csplit :une meilleure façon de diviser un fichier sous Linux en fonction de son contenu

  3. Comment convertir les caractères hexadécimaux en caractères ASCII dans le shell Linux ?

  4. Existe-t-il un moyen de convertir UTF8 en ISO-8859-1 ?

  5. Obtenir l'heure actuelle en heures et minutes

Un moyen simple de lister les liens symboliques sous Linux

Un moyen simple de vérifier la version des pilotes NVIDIA sous Linux

Une manière simple de comprendre la commande IOStat

Quel est un moyen simple de laisser une commande s'exécuter pendant 5 minutes ?

Quel est le moyen le plus rapide d'exécuter un script ?

Un moyen simple de redémarrer les processus en panne ?