linux shuf命令----产生随机的排列
shuf -- 产生随机的排列
随机生成10次抛硬币结果
[user@master]$ shuf -r -n 10 -e '正面' '反面'
正面
反面
正面
反面
反面
反面
正面
反面
反面
正面
主要用途
- 将输入的内容随机排列并输出。
- 当没有文件或文件为
-
时,读取标准输入。
选项
-e 将每个 ARG 视为输入行
-i 将数字范围 LO (最低)到 HI (最高)之间的数字作为输入行
-n 只输出前 COUNT 行
-o 将结果写入到文件而不是标准输出
-r 输出行可以重复
-z 行终止符为 NUL (空字符) 而不是默认的换行符
参数
FILE (可选): 要处理的文件,可以为任意数量,以空格分隔。
ARG (可选): 作为输入行的字符串,可以为任意数量,以空格分隔。
返回值
返回0标识成功,返回非0标识失败。
例子
使用-e
标志传入输入。
[user@master]$ shuf -e Monday Tuesday Wednesday Thursday Friday Saturday Sunday
Monday
Wednesday
Thursday
Saturday
Sunday
Tuesday
Friday
使用-i
标志。
[user@master]$ shuf -i 1-10
6
3
7
8
5
4
9
2
10
1
使用-n
标志。
[user@master]$ shuf -n 5 -i 1-10
1
10
3
5
7
使用-o
参数。
- 如果指定的文件不存在,则会自动创建文件并写入结果
- 如果指定的文件已经存在,则会先清空内容,再写入结果
[user@master]$ shuf -i 1-10 -o result.txt
[user@master]$ cat result.txt
1
9
3
7
6
4
5
8
2
10
使用-r
标志。
[user@master]$ shuf -n 10 -e a b c d
d
a
c
b
[user@master]$ shuf -r -n 10 -e a b c d
a
a
a
d
d
d
a
b
d
b
使用-z
标志。
全部输出都在同一行
[user@master]$ shuf -r -z -n 10 -e a b c d
cbbbadbcbc
其他:
[user@master]$ shuf -i 1-100 -n 5 && shuf -i 200-300 -n 5
96
11
34
2
29
273
208
278
257
271
[user@master]$ shuf -i 1-100 -n 5 | sort -n && shuf -i 200-300 -n 5 | sort -n
30
33
40
47
63
208
221
245
268
269
本文来自博客园,作者:雨-铃,原文链接:https://www.cnblogs.com/yuling25/p/linux_shuf.html