GNU/Linux >> Tutoriales Linux >  >> Linux

Una forma sencilla de convertir HH:MM:SS (horas:minutos:segundos.fracciones de segundo) a segundos

Prueba awk . Como beneficio adicional, puede conservar las fracciones de segundo.

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

Prueba esto:

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 basado en el divisor (IFS ).

${ [<índice> ]} devuelve el elemento de la en el <índice> .

$(( )) realiza la expresión aritmética.

Espero que esto ayude.


Esto funcionaría incluso si no especifica horas o minutos:echo "04:20:40" | sed -E 's/(.*):(.+):(.+)/\1*3600+\2*60+\3/;s/(.+):(.+)/\1*60+\2/' | bc


Linux
  1. ¿Alguna forma de imprimir el valor dentro de la variable dentro de una sola comilla?

  2. csplit:una mejor manera de dividir archivos en Linux según su contenido

  3. forma más rápida de convertir archivos delimitados por tabulaciones a csv en linux

  4. ¿Hay alguna forma de convertir de UTF8 a ISO-8859-1?

  5. Obtener la hora actual en horas y minutos

Una forma sencilla de enumerar enlaces simbólicos en Linux

Una forma sencilla de comprobar la versión de los controladores de NVIDIA en Linux

Una forma sencilla de entender el comando IOStat

crontab se ejecuta cada 15 minutos entre ciertas horas

¿Cuál es una forma sencilla de dejar que un comando se ejecute durante 5 minutos?

¿Cuál es la forma más rápida de ejecutar un script?