alt-cannadic (20110208) | 2011-02-08 22:51 |
alt-depgraph (20100120) | 2010-01-21 00:56 |
郵便番号から住所に変換するための辞書です。
※実行前に「anthy-conf」の場所を確認し、必要なら "ANTHY_CONF" の部分を修正して下さい。
- #!/bin/sh
- LANG=ja_JP.eucJP; export LANG
- ANTHY_CONF="/etc/anthy-conf"
- eval `egrep '^prefix|^ZIPDICT_EUC' "${ANTHY_CONF}" | sed 's/ /=/'`
- DICT_DIR=`dirname "${ZIPDICT_EUC}"`
- cd "${DICT_DIR}" || exit
- # -N: リモートのファイルが更新されてなければ落とさない
- LANG=C wget -N http://alt-cannadic.sourceforge.jp/zipdic/zipcode.t.bz2
- if test zipcode.t -nt zipcode.t.bz2; then
- echo "zipcode.t.bz2 has not been updated." 1>&2
- exit
- fi
- bzcat zipcode.t.bz2 |\
- # a.) ↓全角英数字の候補が不要な場合
- gawk '$3 !~ /[0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ]/{ print }' |\
- # b.) ↓半角英数字の候補が不要な場合
- #gawk '$3 !~ /[0-9a-zA-Z]/{ print }' |\
- cat > "${ZIPDICT_EUC}"
$ chmod a+x $HOME/bin/update_zipdic.sh
$ sudo update_zipdic.sh※ 何かを再起動したり、再ログインしたりする必要はありません。 「0000000」を変換してみて、候補の「郵便番号辞書:201?年?月版」が現在の年月と同じなら更新成功です
$ sudo /usr/sbin/visudo
(/etc/sudoers の中身) ... # User privilege specification root ALL=(ALL) ALL vagus ALL=NOPASSWD: /home/vagus/bin/update_zipdic.sh ← 追加("vagus" の部分は自分のものに変える) ...
$ crontab -e
(crontab の中身) ... # 分 時 日 月 曜日 コマンド # 例: 毎月1日と3日の午前0時5分に実行(3日は元ファイルの更新が遅れた時のための保険) 5 0 1,3 * * sudo $HOME/bin/update_zipdic.sh ← 追加 ...
…こんな感じでどうでしょうかね?