有时候我们需要将文本的顺序打乱,也就是随机排序,我以前的做法是写个shell,利用 bash 里的内置变量 $RANDOM 进行排序,然后打印。代码如下:

 while read line;do echo $RANDOM $line; done < file | sort -n | sed 's/[^ ]\+ //' 

这里取了个巧而已。虽然也能实现需求,但是如果遇到大文件,本身 shell 的效率是很低的。偶然得知系统本身有一个命令是专职干这事儿的,那就是 shuf 命令,那效率,是杠杠滴啊。简单介绍下:

1. 这个命令属于 coreutils 包,如果系统没有此命令,请 yum install coreutils 进行安装。
    2. 它也能够接受标准输入,即管道
    参数:
          -n 最多显示多少行
          -o 将随机排序后的输出写到一个文件中
    更多信息请参考man页。

另外,今天发现用 sort -R也可以随机排序,只是效率比shuf稍微慢一点儿!man sort 的解释如下:

       -R, --random-sortsort by random hash of keys

2013.11.13 更新

1. 在centos 5.5下,sort版本为sort (GNU coreutils) 5.97,没有-R选项

2. 在centos 6.4下,sort版本为sort (GNU coreutils) 8.4,有-R选项。

3. shuf 和 sort命令同属于coreutils 包。

更多信息请参考:http://www.gnu.org/software/coreutils/manual/coreutils.html#sort-invocation

shuf 命令: 随机排序文件相关推荐

  1. linux下shuf命令随即排序shuf -n1 a.txt

    有时候我们需要将文本的顺序打乱,也就是随机排序,我以前的做法是写个shell,利用 bash 里的内置变量 $RANDOM 进行排序,然后打印.代码如下: [java] view plaincopy ...

  2. Linux的shuf命令

    shuf 随机排序 待扩展->Linux下的随机数生成和排序方法,包含各类shell和sort 有时候在Linux中我们需要各种各样符合要求的的随机数,最主要和最常用做法是写个shell,利用 ...

  3. 【shell】shuf命令,随机排序

    shuf命令主要用来对输入的每一行进行随机排序输出,我们可以利用这个属性,实现在几个文件中随机读取一个的功能 如下,zls.txt文件有三行,我们想要随机从中读取一行. 可以看到,每次读取顺序都不一样 ...

  4. 【shell】shuf命令提取文件的随机行

    [shell]shuf命令提取文件的随机行 shuf命令可以随机提取一个文本文件的不同行,输出到文件或者标准输出中. shuf用法: shuf [选项]... [文件]或者: shuf -e [选项] ...

  5. linux 随机抽取文件,shell 随机从文件中抽取若干行的实现方法

    shuf -n5 main.txt sort -R main.txt | head -5 awk -vN=5 -vC="`wc -l file`" 'BEGIN{srand();w ...

  6. linux字符串排序文件,Linux awk+uniq+sort 统计文件中某字符串出现次数并排序

    https://blog.csdn.net/qq_28766327/article/details/78069989 在服务器开发中,我们经常会写入大量的日志文件.有时候我们需要对这些日志文件进行统计 ...

  7. VLC-2.2.6命令行帮助文件

    VLC-2.2.6 用 vlc -H 命令生成的 vlc-help.txt 文件: 用法: vlc [选项] [流] ... 您可以在命令行中指定多个流. 它们将被加入播放列表队列. 指定的首个项目将 ...

  8. linux命令 复制文件夹命令行,(转)每天一个linux命令(8):cp 命令,复制文件和文件夹...

    场景:自动部署脚本中为了部署方便,将配置文件放在服务器端,每次部署都使用服务端的配置文件覆盖上传上去的配置文件. cp命令用来复制文件或者目录,是Linux系统中最常用的命令之一. 一般情况下,she ...

  9. 使用shuf命令模拟数据

    有时因为测试需要,要在数据库中模拟大量的数据,而这些数据都有一定的规律,比如现在有一个包含200个用户昵称的数据文件,要将这些昵称导入到用户表中,用户表的属性有姓名.昵称.性别.年龄.用户类型等等,姓 ...

最新文章

  1. java.net.uri,java.net.uri
  2. Java程序员必看!2021Java大厂面试知识分享
  3. WireConnection 最小生成树,prim 第九届“图灵杯”NEUQ-ACM程序设计竞赛个人赛
  4. java nio 追加写文件_Java NIO在文件末尾追加数据
  5. 清理c盘垃圾的cmd命令_用命令删除系统垃圾,这波操作深藏功与名
  6. python高级编程技巧
  7. Android两个子线程之间通信
  8. 【python教程入门学习】什么是生成器?
  9. java并发编程之原子性、可见性、有序性
  10. 13.相机和图像——透镜、薄透镜_2
  11. ajax原生为什么else会执行2次,关于Ajax,明明传过去的值是1,可不知道为什么就是else起作用?...
  12. 洛谷 P2257 YY的GCD
  13. vue 可用于交互的表格
  14. 有了WCF,Socket是否已人老珠黄?
  15. 最新!中科院分区发布2021年期刊重大调整
  16. 数据挖掘导论课后习题答案-第二章
  17. 分享一些个人的抢票过程
  18. java 实现 excel 去重_用java对大量Excel表处理(去重,生成新属性,统计数量)
  19. Criteo数据集预处理
  20. Queue Map 武魂融合技:MapQueue

热门文章

  1. 手机怎么扫描身份证扫描件?这个方法就挺简单
  2. 11.设计模式--装饰者模式(Decorator模式)
  3. 文档错别字处理方案——WPS拼写检查与文档校对
  4. 抖音批量无水印下载教程 2019
  5. 为什么选择Python作为编程入门语言
  6. 数据流图(DFD)画法要求
  7. 考虑体积重量的装箱问题(贪婪策略装箱)—— 基于遗传算法
  8. flyme服务器升级维修中,魅族Flyme 7体验版上线 修复重大BUG
  9. 星星的故事、是陪你走在人海里、却不会让你走丢。
  10. 斯坦福、伯克利、MIT、CMU、UIUC计算机专业概况