1

05:42:32 のような期間 (1970 年の時間などではありません) を秒単位の期間に簡単に変換する方法を取得したいと思います。bashでこれを行う簡単で迅速な方法はありますか? 「日付」や %s などを試してみましたが、常に 1970 年以降の時刻が返され、期間のみが必要です。

ありがとう !

4

3 に答える 3

3

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
于 2013-08-09T14:38:57.037 に答える
2

Pavelの答えは、ほぼ標準的な解決策です。

楽しみのために、次のようにすることもできます(sed + bc)

kent$  echo "05:42:32"|sed 's/:/*60+/g;s/*60/&&/'|bc
20552
于 2013-08-09T14:40:22.593 に答える