[bash]シェルスクリプトで西暦和暦変換を行う
履歴書書いたりするときに「あれー、2000年って平成何年だっけ?」とか、100年前って和暦で言うところの何年なんだ?と「ふ」とした疑問がわいたりすることがあるでしょう。
そんなあなたに、wareki.shを作りました。
※ ブログに書いたときにダブルクォートなどがサニタイズされてしまったので、再度UPしました。
#!/bin/sh LANG=ja_JP.utf8 case $1 in [0-9]*) date +%Ec --date=$1'years ago' | cut -b 1-22 | sed -e "s/年[0-1][0-9]月[0-3][0-9]日/年/g;s/$/t西暦$(LANG=C date +%Y --date=$1'years ago')年/g" | sed s/年 [1-3]/年't'/g ;; [[:alpha:]]) echo "USAGE $0 1";; esac
最初に端末を日本語UTF-8環境にしていますが、EUC-JPな環境の人は、ここを書き換えてください。また、和暦の右側に西暦を表示することで、和暦と西暦の対応が見やすくなっています。
使い方はいたって簡単、wareki.shのあとに、引数として正の整数を与えてやってください。今年の値を出す場合は、0を与えます。たとえば・・・
$ wareki.sh 10 平成10年 西暦1998年
$ wareki.sh 100 明治41年 西暦1908年
とまあ、こんなあんばいです。なお、CentOS4.xでは和暦は明治35年以降が表示されます。今年から100年前までの一覧表を出すには
$ for i in `echo {0..100}`; do ~/bin/wareki.sh $i; done
これでOKです。
ね、簡単でしょ?