ちょっと調べたのでメモ。
UUID(Universally Unique IDentifier)の詳細については下記リンク先をご参照いただくとして、UUIDの生成については様々なプラットフォームでサポートされているのと、いくつかバージョンが存在します。
バージョン4(完全ランダム生成)を使う前提で、いくつかワンライナーで実行するやり方を残しておきます。
uuidgenコマンド(Linux)
$ uuidgen f6574b6b-02f7-4255-865b-dda39dcd0979
オプションなしで実行すると、上記の通りデフォルトはバージョン4で返してくれます。
(UUIDの 00000000-0000-X000-0000-000000000000 のXの部分の数字がバージョンを示す)
オプション: -r, --random generate random-based uuid -t, --time generate time-based uuid
ヘルプを見る限り、他は"-t"をつけると、バージョン1でも返してくれるみたい。
Python
$ python -c 'import uuid;print uuid.uuid4()' 25ce40b4-aa93-4f7b-967e-694cf3000720
uuidモジュールでは、 uuid1(), uuid3(), uuid4(), uuid5() が提供されている。(バージョン1, 3, 4, 5)
Ruby
$ ruby -e 'require "uuidtools";p UUIDTools::UUID.random_create.to_s' "d14dc0cf-ada9-4045-a99b-31e57ef19937"
こちらは、 timestamp_create(), md5_create(), random_create(), sha1_create() が提供されている。(バージョン1, 3, 4, 5)
Perl
$ perl -e 'use UUID::Tiny;print UUID_to_string(create_UUID(UUID_V4)), "\n";' cc4bbae1-832a-42d1-a207-0d6619d481e8
こちらも、バージョン1, 3, 4, 5 がサポートされている。
use UUID::Tiny; my $v1_mc_UUID = create_UUID(); my $v3_md5_UUID = create_UUID(UUID_V3, $str); my $v3_md5_UUID = create_UUID(UUID_V3, UUID_NS_DNS, 'caugustin.de'); my $v4_rand_UUID = create_UUID(UUID_V4); my $v5_sha1_UUID = create_UUID(UUID_V5, $str); my $v5_with_NS_UUID = create_UUID(UUID_V5, UUID_NS_DNS, 'caugustin.de');
(尚、"UUID::Tiny"についてはCPANでインストールしました。)
調べていると、"Data::UUID"を使うパターンが多く紹介されていたのですが、バージョン4をサポートしていないっぽかったので、↑の"UUID::Tiny"を使ってみた。
追記: cURLコマンドでサイトから
$ curl -s uuid.jp 43f8c8da-d375-486a-826e-2b5d6c87de8d
コメントで教えていただいたのですが、"uuid.jp"にアクセスするとバージョン4のUUIDを返してくれますねw
それでは!=͟͟͞͞(๑•̀=͟͟͞͞(๑•̀д•́=͟͟͞͞(๑•̀д•́๑)=͟͟͞͞(๑•̀д•́