任意桁数のランダムな文字列生成を生成したいことがよくあります。
ターミナルからワンライナーで生成できるようにしておくと便利なので紹介します。
ShellScript と Python を利用するため、Mac で Python3 がインストール済みである前提です。
実行
以下のコードをコピペすると生成できます。
- アルファベット大文字・小文字、数字を使って64文字分の文字列を生成する
python3 -c 'import random;import string;print("".join(random.choice(string.ascii_letters+string.digits) for x in range(64)))'
実行結果サンプル
$ python3 -c 'import random;import string;print("".join(random.choice(string.ascii_letters+string.digits) for x in range(64)))'
E8ZWrBYn5twiBD9ykgxHnnvXTGx3YIQuUhLy6Q3niBZwEOVZjIGiPel5vyYqe5Og
文字列の長さを変えたい場合は range(64)
の数値を変えればOKです。
解説
Pythonコードを ShellScript で実行しているだけですので、中身にPythonコードの解説になります。分割して分かりやすく変換すると以下のようになります。
import random
import string
chars = string.ascii_letters + string.digits
print("".join(random.choice(chars) for x in range(64)))
chars = string.ascii_letters + string.digits
こちらで使用する文字種別を定義しています。
stringライブラリ を使用しており ascii_letters
がアルファベット大文字・小文字。digits
が数字になります。その他文字種別を含めたい場合は適宜カスタマイズしてください。
print("".join(random.choice(chars) for x in range(64)))
range(64)
で指定回数分だけ実行しており、random.choice(chars)
で定義された文字列の中からランダムに文字列を取得します。生成する文字数を変更したい場合は range(64)
の数値を変更してください。