awk
を試す .おまけとして、スプリットセコンドを維持できます。
echo "00:20:40.25" | awk -F: '{ print ($1 * 3600) + ($2 * 60) + $3 }'
これを試してください:
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
).
${<配列> [<インデックス> ]}
$((<算術式> )) 算術式を実行します。
これがお役に立てば幸いです。
これは、時間または分を指定しなくても機能します:echo "04:20:40" | sed -E 's/(.*):(.+):(.+)/\1*3600+\2*60+\3/;s/(.+):(.+)/\1*60+\2/' | bc