Linux shell怎么从20W数据中随机的抽取2W?

我有一个文本文件包含20W行数据,我想随机抽取其中的2W,请问该怎么写命令呢。。... 我有一个文本文件包含20W行数据,我想随机抽取其中的2W,请问该怎么写命令呢。。 展开
 我来答
chaoningwang
推荐于2018-05-11 · TA获得超过682个赞
知道小有建树答主
回答量:806
采纳率:83%
帮助的人:889万
展开全部
#!/bin/bash
sort -R a.txt | head -20000
##
sort随机排序,然后取前20000,实现出来就是随机抽取20000.
追问
sort -R,好像木有 -R 这个选项,只有-r,而且-r只是按照降序排列吧
追答
sort肯定有-R选项啊!你的没有那可能是系统版本的问题,少了什么东西。
更新升级一下你的coreutils包
江南闲士9507
推荐于2016-01-16 · 超过16用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:32.8万
展开全部
#!/bin/bash
# 这个脚本相对有点耗时,专为你的这种不支持sort -R的机子使用

> outfile
for ((i=0;i<20000;i++))
do
rownum=`cat /dev/urandom | tr -dc '0-9' | fold -w 6 | head -n 1`
let "rownum = rownum % 20000 + 1"
cat a.txt | sed -n "${rownum}p" >> outfile
done
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
弗兰克金风科技
2014-07-15 · TA获得超过121个赞
知道答主
回答量:193
采纳率:0%
帮助的人:56.9万
展开全部
head -n 20000 file.txt >> xxx.xxx
不过是 前2W行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
段雅亭
2014-07-15
知道答主
回答量:15
采纳率:0%
帮助的人:4.1万
展开全部
你用下$RANDOM吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式