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
($IFS
).
${
$((
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