シェルで"昨日"みたいな相対的な日付が欲しい
シェルスクリプトで昨日の日付とか、n日前の日付が必要になりまして。
自前で計算すると面倒くさいし、なんかないかと思ってdate --help
を見ていたら「display time described by STRING, not 'now'」なんてかなりそれっぽい記述が。
引数は-d STRING
か--date=STRING
らしい。
試してみた。
$ date
2015年 1月 17日 土曜日 08:53:41 JST
$ date -d yesterday
2015年 1月 16日 金曜日 08:53:55 JST
おお、これはいい。
$ date -d -1day
2015年 1月 16日 金曜日 08:53:58 JST
$ date -d 1hour
2015年 1月 17日 土曜日 09:54:09 JST
結構いろいろあるようだ。
$ date -d 2010-01-01
2010年 1月 1日 金曜日 00:00:00 JST
表示形式を変換する用途にも使えそう。
$ date -d yesterday +%%Y%%m%%d
20150116
表示形式の指定ももちろん可能。
結構便利っぽいぞ、このコマンド?