ねえ、私は少し愚かなようですが、シンボルを含むシーケンスを活用する方法をどこにも見つけることができないようです。
2つの日付と時刻のシーケンスを実行できるようにしたいのです20191110_2330
が、20191111_0200
読み方を知りません_
。どんなアドバイスも本当にありがとうございます。
ベストアンサー1
少し過剰かもしれませんが、次のbash関数とGNU date(1)を使用してこれを行うことができました。
seq_dates () {
local Y1 M1 D1 d1
local r
local m=0
Y1=${1:0:4}
M1=${1:4:2}
D1=${1:6:2}
d1="${Y1}-${M1}-${D1} ${1: -4}"
until [[ $r == $2 ]]; do
r=$($date -d "$d1 + $m minutes" '+%Y%m%d_%H%M')
printf '%s\n' "$r"
((m++))
done
}
次のように呼び出すことができます。
seq_dates 20191110_2330 20191111_0200
入力された開始日をGNU Dateで利用可能な形式に変換し、指定された終了日と等しくなるまで毎回1分を追加するループを実行します。
メモ: 指定された終了日が指定された開始日より前の場合、無限ループが実行されます。