Bashシェルスクリプトでランダムな重複なしの数列を生成する方法

2022-01-28Bash

Bash でランダムな重複なしの数列を生成する方法について。

ちなみに、重複が許される場合には以下のエントリを参考ください。

ここでは、2つの方法を紹介します。

例として、 1 から 8 までの数値を 1 つだけ含んだ ランダムな数列を生成してみます。

shuf コマンドを利用する方法

$ seq 1 8 | shuf
8
3
2
7
1
6
4
5

shuf コマンドが便利な使い方がたくさんあるので、別エントリで詳しく紹介しています

sort コマンドを利用する方法

$ seq 1 8 | sort -R # オプションは大文字であることに注意!
3
4
1
8
7
5
2
6

もちろん、コマンドラインに限らず、Vim を利用しているときに行をランダムに入れ替えるときにも使えます。

ひとこと

やっていることは標準入力から受けとった行をランダムに入れ替えているだけなので、数列以外にも利用できます。

2022-01-28Bash