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 会将整个文件加载到内存中

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

相关推荐
叶帆1 天前
【YFIOs】Docker方式部署
运维·docker·容器
小猿姐1 天前
Clickhouse Kubernetes Operator 实测:哪种方案更适合生产?
运维·数据库·kubernetes
彩色的黑'''1 天前
[root@localhost ~]#,Linux系统的命令提示符为啥现在变成-bash-4.2#了,哪里设置的
linux·运维·bash
树下水月1 天前
文件分片上传接口(Easyswoole)被nginx拦截,并返回状态码400和408的抓包排查过程
运维·nginx
源远流长jerry1 天前
Linux 网络发送机制深度解析:从应用到网线
linux·服务器·网络·网络协议·tcp/ip
南境十里·墨染春水1 天前
linux学习进展 shell编程
linux·运维·学习
goyeer1 天前
【ITIL4】32服务实践 - 问题管理(Problem Management)
linux·运维·服务器·企业数字化·it管理·itil·it治理
怀旧,1 天前
【Linux网络编程】8. 网络层协议 IP
linux·网络·tcp/ip
RH2312111 天前
2026.5.12 Linux
java·linux·数据结构
cen__y1 天前
Linux11(网络编程)
linux·运维·服务器·c语言·网络·网络协议·tcp/ip