约 3158 字

约 16 分钟

#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

#推荐阅读

#手册

更新: 2026/1/18

作者: PlanC

创建: 2025/12/4