エンジニアというのは時に色々な検証を求められる。
例えば企業名で使われている文字列全て網羅してるのか?という問いを受けた場合どうだろうか。
今日はそんな記事です。
まずは企業名の一覧をダウンロード!ここからもらってきました。
https://www.houjin-bangou.nta.go.jp/download/zenken/index.html#csv-unicode
後は以下のコマンドだ!!
// ファイル名長いのでオリジナルファイルってわかりやうしようにしておいた。
$ mv 00_zenkoku_all_20220531.csv original.csv
// 1.1Gの文字列とみて覚悟する。
$ ll -h original.csv
-rwxrwxrwx 1 root root 1.1G 5月 31 17:57 original.csv
// 企業名の列だけ切れてるかなぁとか調べる
$ head original.csv -n100 | cut -d ',' -f 7
"釧路検察審査会"
"伊達簡易裁判所".....
"株式会社***"
// 株式とか有限とかよく出てくる文字はさすがに多すぎるので一旦除く(処理高速化のため)
$ head original.csv -n100 | cut -d ',' -f 7 | sed -E s/[あ-んア-ン株式会社有限]//g
"釧路検察審査会"
"伊達簡易裁判所".....
"***"
// 一旦 temp.1.csvに吐き出す。
$ cut -d ',' -f 7 original.csv | sed -E s/[あ-んア-ン株式会社有限会社\"]//g > t
emp.1.csv
// 63MB!! 力技でいけそうな臭いがしてきた。
$ ll -h temp.1.csv
-rwxrwxrwx 1 root root 63M 6月 16 17:43 temp.1.csv
// 文字を縦に並べてsortしてuniqして ユニークな文字列を縦に並べる。(uniq.txtに保存)
// さすがに63MBあるのでsortが結構重い!!PCスペックにもよるけど7分ぐらいかかった気がする。
// 裁判とか市町村とかも削ればよかったって後悔してももう遅い!
$ cat temp.1.csv | fold -w 1 | sort | uniq > uniq.txt
// 一旦除外してた文字を列挙(ignore.txtに保存)
$ echo "株式会社有限あいうえおカキクケコ(除外した文字)" > ignore.txt
// ignore.txt uniq.txtを連結して改行削除して完成
$ cat uniq.txt ignore.txt | tr -d "\n" > all.txt
// 5323個しか文字ないんか!(あ~んア~ン株式会社有限を含めたら+98個?意外と少ないのね!)
$ wc -l uniq.txt
5323 uniq.txt
以上!