shuf

shuf 是一个 Unix/Linux 命令行工具,用于输出一组随机排列的行。它可以用来从文件中随机抽取行,也可以用来生成随机数。

基本语法:

shuf [OPTION]... [FILE]

如果不指定 FILE,则从标准输入读取数据。

如果指定了 FILE,则从该文件读取数据。

选项:

-n, --head-count=COUNT: 输出最多 COUNT 行。如果文件中的行数少于 COUNT,则输出所有行。
-r, --repeat: 重复输出行,直到达到 -n COUNT 的限制(如果没有 -n,则无限重复)。
-e, --echo: 将每个参数视为一行输入,而不是从文件或标准输入读取。
-i, --input-range=LO-HI: 指定一个整数范围 LO-HI,每行输出一个随机数。
-z, --zero-terminated: 以 NUL 字符代替换行符分隔输出的行。
--help: 显示帮助信息并退出。
--version: 显示版本信息并退出。

示例:

  1. 从文件中随机选择一行:
    shuf file.txt
  2. 从文件中随机选择三行:
    shuf -n 3 file.txt
  3. 从文件中随机选择五行,并允许重复:
    shuf -nr 5 file.txt
  4. 将每个参数作为一行输入,并随机输出:
    shuf -e "one" "two" "three"
  5. 生成 1 到 100 之间的五个随机数:
    shuf -i 1-100 -n 5
  6. 生成 1 到 10 之间的随机数,并允许重复:
    shuf -i 1-10 -nr 5

注意事项:

当使用 -r 或者 -n 时,如果不指定具体的数量,那么 -r 将默认输出文件中的所有行,而 -n 会输出一行。
-i 选项通常用于生成随机整数。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注