開始日と終了日時を使用して1分あたりの時間を表示する

開始日と終了日時を使用して1分あたりの時間を表示する

2つの日付と時刻の間の時間を毎分表示するスクリプトを作成したいと思います。開始間隔と終了間隔は、5分、3時間、30日など、任意の値にすることができます。

例:

Start time: 2019-12-31 23:57:00
End Time  : 2020-01-01 00:03:00

結果:

 2019-12-31 23:57:00
 2019-12-31 23:58:00
 2019-12-31 23:59:00
 2020-01-01 00:00:00
 2020-01-01 00:01:00
 2020-01-01 00:02:00
 2020-01-01 00:03:00

編集:このオプションを使用すると、次のエラーが発生します-d

     date: Not a recognized flag: d
     Usage: date [-u] [+"Field Descriptors"]

ベストアンサー1

dateこれは、次の式を処理できるGNUを使用すると+1 minute非常に簡単です。

#!/bin/bash
start='2019-12-31 23:57:00'
end='2020-01-01 00:03:00'

date=$start
while [[ $date < $end || $date == $end ]] ; do
    echo "$date"
    date=$(date -d "+1 minute $date" '+%Y-%m-%d %H:%M:%S')
done

おすすめ記事