[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です。
ね、簡単でしょ?