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

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

相关推荐
M78佐菲6 小时前
Linux学习笔记:TCP协议
linux·笔记·学习·tcp/ip·算法
Brilliantwxx7 小时前
【Linux】 进程(9)程序与进程地址空间(基础+进阶+面试题)
linux·运维·服务器·开发语言·c++
不怕犯错,就怕不做7 小时前
git prune 自动删除本地记录中那些远程已经不存在的分支引用
linux·服务器·git
richdata7 小时前
商品数字化不是先做大数据,而是先把数据变成可用决策
大数据·运维·数据治理·商品数字化·智能补货·ai商品决策
weixin_416667968 小时前
【无标题】
运维·服务器·网络
一池秋_9 小时前
arm低配linux设备,桌面应用冷启动提速方法
linux·运维·arm开发
惜离殇9 小时前
从零开始的敲代码生活--Linux应用软件(文件操作基础1)
linux·c语言·文件操作·标准io
上海云盾-小余10 小时前
流量攻击复盘:为什么 WAF 完好,业务依旧瘫痪
运维·服务器·网络
IT大白鼠10 小时前
Docker 私有仓库管理:Harbor 企业级仓库搭建与镜像全生命周期管理
运维·docker·容器
戴西软件11 小时前
戴西iDWS.3DViz Suite数据轻量化可视化软件,从传统桌面软件向云端协同的重大突破
大数据·运维·网络·人工智能·机器学习·3d