Linuxの「ジョークコマンド」「ネタコマンド」として取り上げられることの多いコマンド rig
を Mac で使ってみる。
環境
% sw_vers ProductName: macOS ProductVersion: 12.3.1 BuildVersion: 21E258 % brew --version Homebrew 3.5.2 Homebrew/homebrew-core (git revision ab2de8eb603; last commit 2022-06-26) Homebrew/homebrew-cask (git revision 9713bf8928; last commit 2022-06-25)
インストール
Homebrew でインストールできる。
% brew install rig
brew info
で確認したところ、この1年でのインストール数は 250 程度らしい。この辺りからもほぼ使わることのないコマンドということが分かる。
% brew info rig rig: stable 1.11 (bottled) Provides fake name and address data https://rig.sourceforge.io/ /usr/local/Cellar/rig/1.11 (11 files, 126.4KB) * Poured from bottle on 2022-06-26 at 18:39:05 From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/rig.rb License: GPL-2.0 ==> Analytics install: 21 (30 days), 65 (90 days), 249 (365 days) install-on-request: 21 (30 days), 65 (90 days), 251 (365 days) build-error: 2 (30 days)
使い方
rig
コマンドを実行すると、ランダムな氏名・住所・電話番号(一部はマスキングされている)が出力される。
% rig Giovanni Camacho 574 New First Rd Minneapolis, MN 55401 (612) xxx-xxxx
-c
オプションで出力する件数を指定することもできる。住所には州コードが含まれており、アメリカのものが出力されるようである。
% rig -c 3 Claudio Dyer 150 Sunrise Rd Arlington, TX 76010 (817) xxx-xxxx Jarrod Serrano 416 Wommert Ln Beloit, WI 53511 (608) xxx-xxxx Grace William 222 Rider Blvd Akron, OH 44309 (216) xxx-xxxx
細かいオプションとして、-m
で男性の、-f
で女性の名前に限定して出力させることができる。
% rig -m Pat Ware 930 Manchester St Plainfield, NJ 07061 (908) xxx-xxxx % rig -f Petra Higgins 30 Ashland St Burlington, NC 27215 (919) xxx-xxxx
本当にこれだけのコマンドである。
brew info に記載のあった URL を確認してみても、機能に関してはこれ以上の情報は特に得られなかった。コマンド名の rig は Random Identity Generator の略ということは分かった。
RIG - The Random Identity Generator
rig コマンドの仕組み
コマンドの help を確認してみる。
% rig -h USAGE: rig [-f | -m ] [ -d datadir ] [ -c num ] datadir - Directory where data files can be found. If datadir is not specified, /usr/local/share/rig is used as the default directory. num - print num identities. -f and -m specify gender of generated identities.
上述のオプションのほか、データファイルのディレクトリを指定することができ、デフォルトでは/usr/local/share/rig
が使われると記載されている。このディレクトリの中身を見てみると、.idx
形式のファイルが複数あることが確認できる。
% cd /usr/local/share/rig % ls fnames.idx lnames.idx locdata.idx mnames.idx street.idx
ファイルの中身を見てみると、コマンドで出力されていたような文字列がそのまま記載されていることが確認できる。
% head street.idx Sunrise Rd Stonehedge Blvd Midland St Tulip St Beley Rd Bryant Blvd Hamlet St Willow Rd Limetree Ln Genesse Blvd
それぞれのファイルと、コマンドで出力されている項目との対応としては以下のようになる。
- fnames.idx: 女性の名 ( Female Name )
- lnames.idx: 姓 ( Last Name )
- locdata.idx: 住所の2行目+電話番号 ( Location Data )
- mnames.idx: 男性の名 ( Male Name )
- street.idx: 住所の1行目 ( Street Address )
すなわち、.idx
ファイルの中身を書き換えることで、コマンドのカスタマイズが可能である。Homebrew でインストールした状態では、それぞれのファイルに書き込み権限がついていないので chmod
で変更してから編集する (念のためにコピーを作成してから編集している)。
% cp fnames.idx fnames.idx.orig % chmod 755 fnames.idx % echo Test > fnames.idx % cat fnames.idx Test % rig -f Test Floyd 175 West Street Terr Berkeley, CA 94704 (510) xxx-xxxx
ここまでで仕組みもほぼ把握することができたが、より詳細な実装を確認したい場合は、SourceForge.net からソースコードをダウンロードすることができる。
感想
機能が非常に限定的なので、おそらく一般的なLinuxコマンドリファレンスには出てこないようなコマンドではあると感じた。
また、「何に使えるのか」と言われると確かに回答が難しいコマンドでもあると思うが、コマンド名の通りランダムな個人の情報を生成して、ダミーデータをデータベースに大量に入れたい、という場合には使えるかもしれない。