bash で先月の日付を取ろうとしたらどうしても取ることができません。
日付を取得する – UNIX & Linux コマンド・シェルスクリプト リファレンス
1 | date -d '1 days ago' |
Twitter でアドバイスを頂きました。どうやら MacOSX の date コマンドには -v オプションがあるので date -v-1m +”%Y-%m-%d” で上手く取得することができるそうです。
1 | echo `date -v-1m +"%Y-%m-%d"` |
UNIXコマンドにはだいたい3系統(GNU、BSD、SVR4)あり多少癖があるとのことです。Mac OS X は BSD なのでこのような結果となっております。BSD と GNU coreutils でオプションが少しだけ違うので大変ということですね。詳しい方は port で GNU スタイルのコマンドに置き換えてるそうです。
下記の記事も参考になりました。
UNIXの部屋 コマンド検索:date (*BSD/Linux)
今回はじめて UNIX コマンドの3系統 GNU、BSD、SVR4 を意識しました。今回の件をきっかけに、今後この系統というのを意識していくようになると思います。この GNU とか BSD ってのはちょくちょく目にはしてたんですが、全然意識していませんでした。
コメント