0
1

ランダムな文字列をワンライナーで生成する

Posted at

任意桁数のランダムな文字列生成を生成したいことがよくあります。
ターミナルからワンライナーで生成できるようにしておくと便利なので紹介します。

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) の数値を変更してください。

0
1
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
0
1