LoginSignup
2
0

More than 5 years have passed since last update.

ランダムな数字四桁を生成するワンライナーたち

Last updated at Posted at 2018-01-18

映画をよく観ます。
最近の映画館は、チケットをネット予約できるのがありがたいのですが、友人とよく行く、

などでは、予約時にチケットを発券するのに使う数字四桁のパスワードを設定する必要があります。
これを毎回考えるのがめんどくさい。いつも同じパスワードでいいじゃない、と言われるかもしれませんが、そこはそれ、いちおうシステム運用屋ですから。

で、調べ物の合間にチケット予約する時にパスワードを生成するために、OSXの ~/.bash_profile, Ubuntu の ~/.bashrc に仕込んでいるワンライナーたち。

alias rn4="cat /dev/urandom | LC_CTYPE=C tr -dc '0-9' | fold -w 4 | head -n 1"
alias rn4rb='ruby -e "puts (0..9).to_a.sample(4).join"'
alias rn4py='python -c "import random; print \"\".join(random.sample(map(str, range(10)), 4))"'
alias rn4ps='powershell -Command "(Get-Random -InputObject (0..9) -Count 4) -join \"\" "'
rn4
OSX では、LC_CTYPE=C が必要だが、Ubuntu では不要。この方法だと四つのうちに同じ数字が出ることもある。
rn4rb
(0..9).to_a は、[*0..9] と書いてもいいわけで。四つの数字に同じものは出ない。
rn4py
ruby と同じロジックを書いても、python では括弧が多重しがちになるなのがちょといや。
rn4ps
仕事で powershell をよく使うので、Macbook や Ubuntu にも PowerShell をインストールしてある。作ってみたが非常に遅い。

いちばん軽く動くので、結局、/dev/urandom を使った rn4 ばかり使っているような。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0