如何乱序输出文本

本文介绍了在面临需要从已排序的大样本集合中随机抽取样本的任务时,如何通过在Linux环境下利用awk添加随机数并结合sort命令实现文本行的乱序,以达到每次抽取的样本都是随机的目的。通过在每行前添加随机数,然后对随机数列排序,最终删除随机数列,得到乱序的文本。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

问题描述如下

一个文本文件,如何按行乱序输出

这是我在工作中真实遇到的一个小问题,当时的场景是这样的,我们做了一个从网页里提取图片的策略,为了提升策略的效果我们需要找一些badcase,再针对这些badcase做优化,找专人评估既有沟通成本还要等排期,于是经理鼓动组内同事每人评估100个样本,当然,评估的样本必须是随机的,给每个人分配100个随机样本的任务就落到了我身上。此是背景。

我们姑且认为一个样本就是一行文本(实际上是这个文本对应的百度搜索结果,这样说是为了将问题简化),遗憾的是我拿到的一个大样本集合(大约几百万)是已经排好序的,如果我按顺序将每100行进行分割那会导致这100行内的样本不是随机的,如果有一个算法能从大样本中随机抽100条,那每运行一次,将抽取到的样本从中剔除,如此循环也能完成任务,但这样的可操作性显然是非常低的,而那时我可能需要在半个小时之内就将样本分配好,于是我想了一个办法,将这个问题分解为两步:1、将大样本集合按行打乱;2、按顺序将每100行分割成一个文本。步骤1使得整个文件的每行是以随机顺序出现的,这样我按顺序取的每100行自然也是随机的

步骤2用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值