#はじめに
Kakasiは、日本語をローマ字に変換するまたはその逆を行うUnixコマンドである。もはや古い部類に属するコマンドだが、たまに日本語名だらけのリソースをシステムが扱いやすいように変換したい場合、それらの処理を自動化したい場合に効果を発揮する。
ここでは、リマインダとして、kakasiをmavericksにインストールする方法とその運用方法についてまとめる。
インストール
以下のページから、kakasiの最新バージョンのtarballを持ってきて、解凍しビルドする。
ホストオプションをつけるのがポイント。現状で、2.3.5が最新だった。
$ tar xzf kakasi-2.3.5.tar.gz
$ cd kakasi-2.3.5
$ configure —host=powerpc-apple-bsd
$ make
$ sudo make install
運用
kakasiはeuc-jpの文字コードをサポートしているので、mac標準のutf8の文字列をnkfで変換してから与えないと、変な変換をする
悪い例
$ echo "あいうえお" | kakasi -Ha
?yu??うえお
良い例
$ echo "あいうえお" | nkf -e | kakasi -Ha
aiueo
nkfがインストールされていないなら、homebrewでさくっとインストールする
$ brew install nkf
オプション
入力の中のどの種の文字を変換するかは、前後二文字のオプションをつけて、指示する。それぞれの文字の意味は以下の通り
- a: ascii
- j: jisroman
- g: graphic
- k: kana (j,k defined in jisx0201)
- E: kigou
- K: katakana
- H: hiragana
- J: kanji(E,K,H,J defined in jisx0208)
上記の例では、ひらがなから、ローマ字(acciicode)に変換したかったので、-Haというオプションをつけた。漢字からローマ字の場合は、-Ja、カタカナからローマ字の場合は-Kaもつけること。
サンプル
以下、同じディレクトリにある日本語名のファイルをkakasiを使って、英語名にするためのスクリプト例
#!/usr/bin/env python
import os
import commands
import logging
import traceback
logging.basicConfig(level=logging.DEBUG)
for root, dirs, files in os.walk('.'):
for fname in files:
inpath = os.path.join(root, fname)
fname = fname.replace("\s", "_")
fname = fname.replace(" ", "_")
status, engfname = commands.getstatusoutput('echo "%s" | nkf -e | kakasi -Ha -ka -ja -Ja -Ka -Ea -ga' % fname)
if status:
logging.error ("error: status: " + str(status))
continue
outpath = os.path.join(root, engfname)
logging.debug ('mv "%s" "%s"' % (inpath, outpath))
status, output = commands.getstatusoutput('mv "%s" "%s"' % (inpath, outpath))
if status:
logging.error ("error: status: " + str(status))
continue
homebrewを使ったインストール
Homebrewを使ってインストールしたい場合は以下で紹介されているタップを利用するといいらしい