IMEの辞書ファイルから『○んこ』などの伏字の文字候補をシェル芸で取得する

twitterとかだと、よく『○んこ』みたいに伏字になっているのを見かける。 しかしっ、これでは何が○の中に入るのか、ピュアなハートの持ち主には伝わらないっ…。

というわけで、入る文字の候補を調べよう。 どうやって調べようか? こんな感じのページもあるが、ある程度の汎用性は欲しい…。 さてどうしよう。

…そうだ、IMEの辞書ファイルを元に検索しよう! で、いろいろ汎用性もあって都合よさそうなファイルを探した結果、今回はこちらの辞書ファイルがよさげなので利用することにした。 その他、使えそうな辞書ファイルについてはこちらを参考にするとよいだろう。 こちらのファイルなんかは面白そうだ。

で、以下実際のコマンド。 とりあえずzipファイルを直で読み込んでるが、コマンドを連発するようならちゃんとダウンロードしてからにしよう。

curl -s http://web-apps.nbookmark.com/hatena-dic/hatena_msime_nocomment.zip | zcat | iconv -f UTF-16 -t UTF-8 | awk '$1~ /^.んこ$/{print $1}' | uniq
curl -s http://web-apps.nbookmark.com/hatena-dic/hatena_msime_nocomment.zip | zcat | iconv -f UTF-16 -t UTF-8 | awk '$1~ /^.んこ$/{print $1}' | uniq | grep -E -e '^[うまち]..' -e $ # 特定の文字だけ色付き

[root@BS-PUB-CENT7-01 ~]# curl -s http://web-apps.nbookmark.com/hatena-dic/hatena_msime_nocomment.zip | zcat | iconv -f UTF-16 -t UTF-8 | awk '$1~ /^.んこ$/{print $1}' | uniq
あんこ
いんこ
うんこ
えんこ
かんこ
きんこ
けんこ
さんこ
しんこ
ちんこ
てんこ
でんこ
はんこ
ぱんこ
ぶんこ
まんこ
むんこ
めんこ
れんこ
わんこ

こんなにあったのね…(´・ω・`)。 わたくし、わんこしか思いつきませんでしたわ。

ちなみに、「○んこ」をechoで指定して検索する場合はこんな感じかなと。 「○」を「.」に置換して処理させてる。

echo "○んこ" | sed 's/○/./g' | xargs -I{} sh -c "curl -s http://web-apps.nbookmark.com/hatena-dic/hatena_msime_nocomment.zip | zcat | iconv -f UTF-16 -t UTF-8 | awk '\$1~ /^{}$/{print \$1}' | uniq"
[root@BS-PUB-CENT7-01 ~]# echo "○んこ" | sed 's/○/./g' | xargs -I{} sh -c "curl -s http://web-apps.nbookmark.com/hatena-dic/hatena_msime_nocomme.zip | zcat | iconv -f UTF-16 -t UTF-8 | awk '\$1~ /^{}$/{print \$1}' | uniq"
あんこ
いんこ
うんこ
えんこ
かんこ
きんこ
けんこ
さんこ
しんこ
ちんこ
てんこ
でんこ
はんこ
ぱんこ
ぶんこ
まんこ
むんこ
めんこ
れんこ
わんこ