#Bash 的 shuf 命令
shuf [OPTION]... [FILE]
功能
生成随机的排列组合。
类型
可执行文件(/usr/bin/shuf),属于 coreutils。
参数
OPTION选项:-e,--echo- 将每个参数视为一行输入-i,--input-range=LO-HI- 将数值LO到HI随机排列-n,--head-count=COUNT- 输出保留前COUNT行-o,--output=FILE- 将结果输出到FILE文件;默认为标准输出--random-source=FILE- 从FILE文件获取随机数-r,--repeat- 输出可以重复-z,--zero-terminated- 以空字符(\0)作为行的结尾,而不是换行符(\n)--help- 显示帮助--version- 显示版本
FILE- 文件;如果没有这个参数或指定为-,则读取标准输入
#示例
生成随机数列表
$ shuf -i 1-5 # 将 1-5 随机排列
2
5
4
1
3
$ shuf -i 1-5 -r -n 10 # 生成 10 个 1-5 的随机数
3
5
2
1
5
4
1
5
3
2
将文件的行随机排列
$ echo -e "A\nB\nC\nD\nE" > 1.txt # 创建文件
$ shuf 1.txt # 将文件的行随机打乱
D
A
C
E
B
$ echo -e "A\nB\nC\nD\nE" > 1.txt # 创建文件
$ shuf -r -n 10 1.txt # 将文件的行随机输出 10 次
D
A
C
E
B
#推荐阅读
#手册
SHUF(1) User Commands SHUF(1) NAME shuf - generate random permutations SYNOPSIS shuf [OPTION]... [FILE] shuf -e [OPTION]... [ARG]... shuf -i LO-HI [OPTION]... DESCRIPTION Write a random permutation of the input lines to standard output. With no FILE, or when FILE is -, read standard input. Mandatory arguments to long options are mandatory for short options too. -e, --echo treat each ARG as an input line -i, --input-range=LO-HI treat each number LO through HI as an input line -n, --head-count=COUNT output at most COUNT lines -o, --output=FILE write result to FILE instead of standard output --random-source=FILE get random bytes from FILE -r, --repeat output lines can be repeated -z, --zero-terminated line delimiter is NUL, not newline --help display this help and exit --version output version information and exit AUTHOR Written by Paul Eggert. REPORTING BUGS GNU coreutils online help: <https://www.gnu.org/software/coreutils/> Report any translation bugs to <https://translationproject.org/team/> COPYRIGHT Copyright © 2023 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. SEE ALSO Full documentation <https://www.gnu.org/software/coreutils/shuf> or available locally via: info '(coreutils) shuf invocation' GNU coreutils 9.4 April 2024 SHUF(1)