GNU/Linux >> Znalost Linux >  >> Linux

Jednoduchý způsob, jak převést HH:MM:SS (hodiny:minuty:sekundy.rozdělené sekundy) na sekundy

Zkuste awk . Jako bonus si můžete ponechat mezisekundy.

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

Zkuste toto:

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

($ ) rozdělí na základě rozdělovače (IFS ).

${ [ ]} vrátí prvek na .

$(( )) provede aritmetický výraz.

Doufám, že to pomůže.


To by fungovalo, i když nezadáte hodiny nebo minuty:echo "04:20:40" | sed -E 's/(.*):(.+):(.+)/\1*3600+\2*60+\3/;s/(.+):(.+)/\1*60+\2/' | bc


Linux
  1. Jaký způsob tisku hodnoty uvnitř proměnné uvnitř jediné nabídky?

  2. csplit:Lepší způsob, jak rozdělit soubor v Linuxu na základě jeho obsahu

  3. Jak spouštět Cron každých 5 minut, sekund, hodin, dnů, měsíců

  1. nejrychlejší způsob převodu souboru odděleného tabulátory na csv v linuxu

  2. Získejte aktuální čas v hodinách a minutách

  3. Převeďte datum ISO na sekundy od epochy v linux bash

  1. Nejlepší způsob, jak skriptovat vzdálené příkazy SSH v dávce (Windows)

  2. Doba provozuschopnosti formátu Bash pro zobrazení dnů, hodin, minut

  3. Jaký je jednoduchý způsob, jak nechat příkaz běžet 5 minut?