GNU/Linux >> Linux Esercitazione >  >> Linux

Modo semplice per convertire HH:MM:SS (ore:minuti:secondi.frazioni di secondo) in secondi

Prova awk . Come bonus, puoi mantenere i secondi intermedi.

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

Prova questo:

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

($ ) divide basato sullo splitter (IFS ).

${ [ ]} restituisce l'elemento di al .

$(( )) esegue l'espressione aritmetica.

Spero che questo aiuti.


Funzionerebbe anche se non specifichi ore o minuti:echo "04:20:40" | sed -E 's/(.*):(.+):(.+)/\1*3600+\2*60+\3/;s/(.+):(.+)/\1*60+\2/' | bc


Linux
  1. Qual è il modo per stampare il valore all'interno della variabile all'interno del preventivo singolo?

  2. Come convertire i caratteri esadecimali in ASCII nella shell di Linux?

  3. C'è un modo per convertire da UTF8 a ISO-8859-1?

  4. Ottieni l'ora corrente in ore e minuti

  5. Converti una data ISO in secondi dall'epoca in linux bash

Un modo semplice per elencare i collegamenti simbolici in Linux

Un modo semplice per controllare la versione dei driver NVIDIA su Linux

Un modo semplice per comprendere il comando IOStat

Qual è il modo più veloce per eseguire uno script?

Un modo semplice per riavviare i processi bloccati?

Come cambiare il formato dell'ora in secondi in ps -p?