Versuchen Sie es mit awk
. Als Bonus können Sie die Sekundenbruchteile behalten.
echo "00:20:40.25" | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3 }'
Versuchen Sie Folgendes:
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
).
${
$((
Hoffe das hilft.
Dies würde auch funktionieren, wenn Sie keine Stunden oder Minuten angeben:echo "04:20:40" | sed -E 's/(.*):(.+):(.+)/\1*3600+\2*60+\3/;s/(.+):(.+)/\1*60+\2/' | bc