ターミナル上でひらがな⇔ローマ字変換は uconv を使うとできるのだけど、ひらがなからの漢字変換候補を得る方法が無いのかなー、と常々思っていた。 で、別件で調べ物をしていた時に kkc なるものを知った。これを使うことで、IMEから変換候補を取得することができるようだ。

Ubuntuであれば、以下のコマンドでインストールができる。

sudo apt install libkkc-utils

インストールできたら、以下のようにコマンドを実行することでIMEでの変換候補を取得できる。

echo 変換する文字列 取得数 | kkc
blacknon@BS-PUB-DEVELOP:~$ echo ひとのおかねでやきにくたべたい 10 | kkc
Type kana sentence in the following form:
SENTENCE [N-BEST [SEGMENT-BOUNDARY...]]
>> 0: <人/ひと><の/の><お/お><金/かね><で/で><焼肉/やきにく><食べ/たべ><た/た><い/い>
1: <ヒト/ひと><の/の><お/お><金/かね><で/で><焼肉/やきにく><食べ/たべ><た/た><い/い>
2: <人/ひと><の/の><お/お><金/かね><で/で><焼肉/やきにく><食べ/たべ><体/たい>
3: <ひと/ひと><の/の><お/お><金/かね><で/で><焼肉/やきにく><食べ/たべ><た/た><い/い>
4: <一/ひと><の/の><お/お><金/かね><で/で><焼肉/やきにく><食べ/たべ><た/た><い/い>
5: <妃/ひ><と/と><の/の><お/お><金/かね><で/で><焼肉/やきにく><食べ/たべ><た/た><い/い>
6: <費/ひ><と/と><の/の><お/お><金/かね><で/で><焼肉/やきにく><食べ/たべ><た/た><い/い>
7: <人/ひと><の/の><降鐘/おかね><で/で><焼肉/やきにく><食べ/たべ><た/た><い/い>
8: <比/ひ><と/と><の/の><お/お><金/かね><で/で><焼肉/やきにく><食べ/たべ><た/た><い/い>
9: <人/ひと><の/の><お/お><金/かね><で/で><焼肉/やきにく><食べ/たべ><た/た><位/い>
>>

残念ながら、変換結果のみをそのまま出力はできないようなので、以下のようにシェル芸をしてパースしてやる。 (perlの置換で先読み/後読みを使って最短一致した箇所以外を削除できるとよかったけど…ちょっとだめだったのでxargsで無理やり対処)

echo 変換する文字列 取得数 |kkc|xargs -I@ bash -c 'echo "@"|grep -oP "(?(?<=<).*?(?=/))"|xargs'|sed 's/ //g;/^$/d'
blacknon@BS-PUB-DEVELOP:~$ echo ひとのおかねでやきにくたべたい 10|kkc|xargs -I@ bash -c 'echo "@"|grep -oP "(?(?<=<).*?(?=/))"|xargs'|sed 's/ //g;/^$/d'
人のお金で焼肉食べたい
ヒトのお金で焼肉食べたい
人のお金で焼肉食べ体
ひとのお金で焼肉食べたい
一のお金で焼肉食べたい
妃とのお金で焼肉食べたい
費とのお金で焼肉食べたい
人の降鐘で焼肉食べたい
比とのお金で焼肉食べたい
人のお金で焼肉食べた位

なんやかんやで遊べそうな感じだ。