サイトロゴ

cal でカレンダー祝日表示|シェル

著者画像
Toshihiko Arai

はじめに

macOSのターミナルでカレンダー表示できるcalコマンドのご紹介です。今まで使ってなかったのですが、これ、地味に便利ですwしかも祝日表示させる方法も見つけましたので、後半でご紹介いたします。

calコマンドまとめ

いきなり、calコマンドのまとめです。

項目 コマンド
今月のカレンダーを表示 $cal
指定した月のカレンダーを表示 $ cal 3 2024
年間カレンダーを一覧で表示 $ cal 2024
先月、当月、翌月のカレンダーを表示 $ cal -3

とくに先月、当月、翌月のカレンダーを表示表示できる $ cal -3 が便利です。

祝日も表示させる

祝日も表示できないか調べてたところ、 こちらの記事 が大変参考になりました。ありがとうございます!以下、祝日を表示させるコマンドです。

cal -3; curl -s https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv | iconv -f SHIFT-JIS -t UTF-8 | grep -E "`date -v-1m '+%Y/%-m/'`|`date '+%Y/%-m/'`|`date -v+1m '+%Y/%-m/'`"

内閣府が発行している祝日のcsvデータをcurlでフェッチし、iconvでshift-jisからutf-8へ文字エンコード処理を行います。そして、csvデータの中から、cal -3のカレンダー表示に合わせて先月、当月、翌月の祝日データをgrepでフィルタリングして表示させてます。

エイリアスに登録

祝日表示がかなり便利なので、シェルのエイリアスにcal3で登録しておきました。

alias cal3="cal -3; curl -s https://www8.cao.go.jp/chosei/shukujitsu/syukujitsu.csv | iconv -f SHIFT-JIS -t UTF-8 | grep -E \"\$(date -v-1m '+%Y/%-m/')|\$(date '+%Y/%-m/')|\$(date -v+1m '+%Y/%-m/')\""

$ source ~/.zshrc で設定を読み込み、cal3 を実行してみましょう。下図のように祝日も表示させることができました!

関連記事