全国の村がつく住所の数をgrepとwcで求める

アニメ「迷家-マヨイガ-」の登場人物が多くて感情移入しにくい中、私のお気に入りになったのが処刑大好き少女「らぶぽん」です。誰かを処刑したくて仕方がないようで、ことあるごとに「処刑、処刑」と叫んでます。
この「迷家-マヨイガ-」ですが、どういうアニメかというと、男女30人を乗せた人生やり直しツアーのバスが向かった先は、「納鳴村」という誰も知らない都市伝説上の村だった。
これぐらいしか、まだわからないってのが正直な感想です。

さて、本アニメの舞台「納鳴村」は、誰も知らない村なので、郵便番号もありません。本当にないか確認してみましょう。下記のようにgrepすれば検索できます。

grep 納鳴村 郵便番号データ

郵便場号データは、郵便局のHPからwgetし、unzipします。

~$ wget http://www.post.japanpost.jp/zipcode/dl/oogaki/zip/ken_all.zip
~$ ls -lh
合計 1.7M
-rw-r--r-- 1 takk takk 1.7M  4月 28 16:59 ken_all.zip
~$ unzip ken_all.zip
Archive:  ken_all.zip
  inflating: KEN_ALL.CSV 
~$ 

文字コードを確認します。

~$ nkf --guess < KEN_ALL.CSV 
Shift_JIS (CRLF)
~$ 

UTF8ではなくSJISでしたので、以降はnkfを使っていきます。

数行内容を見てみます。

~$ nkf < KEN_ALL.CSV | head -3
01101,"060  ","0600000","ホツカイドウ","サツポロシチユウオウク","イカニケイサイガナイバアイ","北海道","札幌市中央区","以下に掲載がない場合",0,0,0,0,0,0
01101,"064  ","0640941","ホツカイドウ","サツポロシチユウオウク","アサヒガオカ","北海道","札幌市中央区","旭ケ丘",0,0,1,0,0,0
01101,"060  ","0600041","ホツカイドウ","サツポロシチユウオウク","オオドオリヒガシ","北海道","札幌市中央区","大通東",0,0,1,0,0,0
~$ 

CSVなのでカンマ区切りデータですね。3番目が郵便番号のようです。

では「納鳴村」がデータ内にあるか確認してみます。

~$ nkf < KEN_ALL.CSV | grep 納鳴村
~$

やはり存在しないみたいです。

次にタイトルにありますように「村」のつく住所の数を調べてみます。

~$ nkf < KEN_ALL.CSV | grep 村 | wc -l
4018
~$ 

やけに多いですが、村そのものではなく、村がつく住所なので。

せっかくなのでこのCSVデータを利用して、郵便番号検索コマンドを作ってみたいと思います。bash関数で作成します。

~$ z(){ nkf < KEN_ALL.CSV | grep $1 | cut -d, -f3,7,8,9; }
~$ 

完成です。zは、zipcode(郵便番号)のzから取りました。
では住所を検索してみます。

~$ z 井波栄町
"9320213","富山県","南砺市","井波栄町"
~$ 

郵便番号でも検索できます。

~$ z 0280555
"0280555","岩手県","遠野市","土淵町土淵"
~$ 

zの中身はgrepですから、正規表現はもちろん使えますし、データにルビがありますので、カタカナ検索もできます。
意外に使えますよ。

ちなみに上記のgrepで表示された遠野市土淵は、迷い家(訪れた物に富をもたらす幻の家)のルーツ佐々木喜善さんの出身地らしいです。

One response to “全国の村がつく住所の数をgrepとwcで求める

  1. Pingback: /usr/localディレクトリに何を置けばよい? | コマンドの達人

Leave a Reply

Your email address will not be published. Required fields are marked *

CAPTCHA