(Linux)dateコマンドでタイムテーブル

8-1 日付時間

dateで、朝6時から夜11時まで1時間毎の時刻テーブルを表示してみます。

~$ for i in `seq 6 23`
> do date +%H:%M --date "0:0 $i hour"
> done 
06:00
07:00
08:00
09:00
10:00
11:00
12:00
13:00
14:00
15:00
16:00
17:00
18:00
19:00
20:00
21:00
22:00
23:00

では、30分毎のテーブルを得るにはどうすれば良いでしょうか。

~$ for i in `seq 6 23`
> do for j in `seq 0 30 30`
> do date +%H:%M --date "0:0 $i hour $j min"
> done
> done
06:00
06:30
07:00
07:30
08:00
08:30
09:00
09:30
10:00
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
14:30
15:00
15:30
16:00
16:30
17:00
17:30
18:00
18:30
19:00
19:30
20:00
20:30
21:00
21:30
22:00
22:30
23:00
23:30
~$

23:30まで表示されてしまいました。

次はseqで30分単位、ネストなしで計算してみます。

~$ for i in `seq 0 30 1030`
> do date +%H:%M --date "6:00 $i min"
> done
06:00
06:30
07:00
07:30
08:00
08:30
09:00
09:30
10:00
10:30
11:00
11:30
12:00
12:30
13:00
13:30
14:00
14:30
15:00
15:30
16:00
16:30
17:00
17:30
18:00
18:30
19:00
19:30
20:00
20:30
21:00
21:30
22:00
22:30
23:00
~$ 

上手くいきました。

コメント

タイトルとURLをコピーしました