我知道我可以seq
用来生成一个随机的数字列表:1, 2, 3, 4 ...
我想把这些数字变成一个随机的顺序,比如 3、1、4、2……
我知道我可以shuf
用来打乱文件的行。所以我可以seq
用来将随机数写入一个文件,然后用来shuf
对它们进行混洗——或者编写某种混洗函数。但这似乎不必要地复杂。有没有更简单的方法来使用单个命令随机化数组中的项目?
slm*_*slm 17
您可以将输出通过管道传输到shuf
.
$ seq 100 | shuf
Run Code Online (Sandbox Code Playgroud)
$ seq 10 | shuf
2
6
4
8
1
3
10
7
9
5
Run Code Online (Sandbox Code Playgroud)
如果您希望输出是水平的,则将其通过管道传输到paste
.
$ seq 10 | shuf | paste - -s -d ' '
1 6 9 3 8 4 10 7 2 5
$ seq 10 | shuf | paste - -s -d ' '
7 4 6 1 8 3 10 5 9 2
$ seq 10 | shuf | paste - -s -d ' '
9 8 3 6 1 2 10 4 7 5
Run Code Online (Sandbox Code Playgroud)
想要中间有逗号吗?将分隔符更改为paste
:
$ seq 10 | shuf | paste - -s -d ','
2,4,9,1,8,7,3,5,10,6
Run Code Online (Sandbox Code Playgroud)