ランダムな文字列をパッと出すPerlスクリプトを書いた
ランダムな文字列を何文字分かサクッと出したい、ということが時々あります。
このようなときに使える小さいツールを作りました。
使い方
たとえば以下のようにターミナルに打ち込むと、
perl randstr.pl 5
5文字のランダムな文字列が出てきます。
+/2ox
文字数を指定しなければ、100文字出力されます。
この際には数字・アルファベット(大小)・記号がミックスされたものが出てきますが、オプションを指定することによって、数字だけ・大文字ないし小文字だけ・数字とアルファベットだけ、などの組み合わせも可能です。
perl randstr.pl -d 5 #=> 91486 perl randstr.pl -w 5 #=> vkDrV perl randstr.pl -m 5 #=> 4Md8g perl randstr.pl -l 5 #=> jajnu perl randstr.pl -u 5 #=> OKKQX
詳しくは以下。
-d --digit Set digit -w --word Set words -m --mix Set digit & words -l --lower Set lower case -u --upper Set upper case -h --help Show help
便利な使い方
どういう時にこれが必要になる、という具体的な事例は自分でもよくわからないんですが、案外必要になるケースが多く、その時にいちいちスクリプト名を打ち込むのも面倒なので、.bashrcに以下のようなエイリアスと関数を設定してシュッと出てくるようにしています。
alias pw="perl path/to/randstr.pl" function pww { randstr=$(pw "$@") echo $randstr | tr -d "\n" | pbcopy echo $randstr }
ただ表示したいだけなら pw で済みますが、実際の用途としてはそれをクリップボードにコピーするところまでセットなので、 pww の方がよく使います。(要Mac)
Getopt::Long
少し前にGetopt::Longを初めて使って、オプションの取り回しがだいぶラクになったな、と思っていましたが、しばらく使わないうちに忘れかけていたので、今回はそのリハビリもかねてそれ周りをGetopt::Longで書き直しました。
ただ、このツールでは引数の値は受け取らないので、あまり効果は大きくないですが・・。
後の自分の参考用に、Getopt::Longの復習にともない参考にしたブログ記事を掲示しておきます。
お蔵出し
このツールはじつは少し前に寄稿した、WEB+DB PRESSの記事で紹介する候補のひとつでした。
その記事では自作の小ネタツールを紙芝居コントのように次々紹介していたので、内容的にも規模的にもちょうどいい感じでしたが、紙数が足りなかったのと、最終的な構成からは少し浮く感じもあったので、お蔵になっていました。
展望
これのRuby版も作ってみたいところです。Rubyの練習。
あとはブラウザで動くのも作ってみたいです。JavaScriptの練習・・かな。