行や配列をシャッフルしてくれるshufコマンドだが、最新ちょっと使う機会が増えてきたので使い方について調べてみることにした。
で、ある程度使い方が整理できてきたので、備忘で残しておくことにする。
1. 基本的な使い方
基本的な使い方としては、以下のようにパイプから入力を受け付けた要素(行)をシャッフル(ランダムに並べ替え)するという使い方になる。
(sort -R
と同じような処理)
command | shuf
[blacknon@BS-PUB-CENT7-01 ~]$ seq 1 10 | shuf
10
3
7
1
5
2
6
9
8
4
2.取得数を指定する
「...
コンソール上で適当な文字列をシャッフルさせて出力させる場合だと、以下のようにshufコマンドを利用する方法が楽だと思う。
以下、実行例。
echo $(echo 山田エルフ|grep -o .|shuf|tr -d '\n')
echo $(echo 山田エルフ|fold -w1|sort -R|tr -d '\n')
ふと、ロト6とかロト7買おうと思ったのだけど、あんまり数字を当てる自信がないのでコマンドでランダムに決めてしまおうと思った。
で、Linuxのコマンドでランダムにn個の数字を得る場合はshufコマンドが便利なので、それで得ることにした。
shuf -i○-● -n NUM | sort -n
つまり、ロト6やロト7で記述する数字を出す場合、以下のようにすればよいということだ。
●ロト6
shuf -i1-43 -n 6 | sort -n