ブログ

数値や文字列をシャッフルする方法

at_shiita.ishigaki
2022年2月24日 9時47分

数値や文字列をシャッフルするにはshufコマンドを使用します。
※ここでは例として、1から5までの数値をシャッフルする場合を示します。

1回目
[armadillo ~]# seq 1 5 | shuf
1
2
4
5
3
2回目
[armadillo ~]# seq 1 5 | shuf
3
4
1
2
5

1回目と2回目の値は違っていることが確認できます。
また、文字列をシャッフルすることもできます。

[armadillo ~]# cat > str << EOF
hoge
fuga
piyo
EOF
[armadillo ~]# shuf str 
fuga
hoge
piyo

連続した数値をシャッフルするには、-iオプションを使用することもできます。
※ここでは例として、1から10までの数字をシャッフルし、出力します。

[armadillo ~]# shuf -i 1-10
2
6
8
9
7
3
1
5
10
4

出力する個数指定するには-nオプションを使用します。
※ここでは例として、1から10までの数値をシャッフルし、3つ表示します。

[armadillo ~]# shuf -i 1-10 -n 3
5
1
3

シャッフルする数値や文字列を直接入力する場合は、-eオプションを使用します。

[armadillo ~]# shuf -e hoge fuga piyo
piyo
hoge
fuga