Linux 的 shuf 命令

Linux 的 shuf 命令是一个用于生成随机排列的实用工具,它可以从输入文件中随机排列行内容,或生成随机数序列。这个命令是 GNU coreutils 包的一部分,通常预装在大多数 Linux 发行版中。

基本语法:shuf [选项]... [文件]

常用选项:

  • -e, --echo:将每个参数视为输入行
  • -i, --input-range=LO-HI:将 LO 到 HI 范围内的每个数字视为输入行
  • -n, --head-count=COUNT:最多输出 COUNT 行
  • -o, --output=FILE:将结果写入 FILE 而非标准输出
  • -r, --repeat:允许重复输出行(默认不重复)

典型应用场景:

  1. 随机选择文件中的行:
bash 复制代码
shuf input.txt -n 5  # 从input.txt中随机选取5行
  1. 生成随机数序列:
bash 复制代码
shuf -i 1-100 -n 10  # 生成1-100范围内的10个不重复随机数
  1. 随机排列参数列表:
bash 复制代码
shuf -e 苹果 香蕉 橙子 梨
  1. 创建随机密码(结合其他命令):
bash 复制代码
shuf -n 4 /usr/share/dict/words | tr -d '\n'
  1. 随机分配任务:
bash 复制代码
shuf employees.txt | split -l 5 - team_  # 将员工随机分成每组5人

注意事项:

  • 默认情况下,shuf 不会重复输出相同的行
  • 使用 -r 选项可以允许重复输出
  • 在不指定文件时,shuf 会从标准输入读取数据
  • 对于大文件处理,shuf 会将整个文件加载到内存中

该命令在需要随机化数据的场景中非常有用,如测试数据准备、抽奖程序、随机抽样等应用。

相关推荐
ScilogyHunter8 分钟前
BusyBox完全指南
linux·busybox
ScilogyHunter9 分钟前
QEMU完全指南
linux·qemu
承渊政道10 分钟前
【MySQL数据库学习】MySQL基本查询(下)
数据库·学习·mysql·leetcode·bash·数据库开发·数据库系统
2301_7779983413 分钟前
磁盘与文件系统
linux
牟同學13 分钟前
Ubuntu 18.04 升级至 22.04 LTS 完整指南
linux·ubuntu
qq_1631357514 分钟前
Linux 【05-rmdir命令超详细教程】
linux
qq_1631357516 分钟前
Linux 【02-cd命令超简教程】
linux
ShirleyWang01219 分钟前
win11运行ubuntu报错
linux·运维·ubuntu
加油码21 分钟前
Linux 进程详解:从进程状态、调度到程序替换
linux·服务器
DeeplyMind21 分钟前
Linux 内核模块符号版本不匹配问题排查指南
linux·crc·module.symvers