05:42:32 のような期間 (1970 年の時間などではありません) を秒単位の期間に簡単に変換する方法を取得したいと思います。bashでこれを行う簡単で迅速な方法はありますか? 「日付」や %s などを試してみましたが、常に 1970 年以降の時刻が返され、期間のみが必要です。
ありがとう !
IFS を使用して、時間を時間、分、秒に分割できます。
#! /bin/bash
to_seconds () {
IFS=: read h m s <<< "$1"
echo $(( 10#$h * 3600 + 10#$m * 60 + 10#$s ))
}
duration=05:42:32
to_seconds $duration
Pavelの答えは、ほぼ標準的な解決策です。
楽しみのために、次のようにすることもできます(sed + bc)
。
kent$ echo "05:42:32"|sed 's/:/*60+/g;s/*60/&&/'|bc
20552