linux下shuf命令随即排序shuf -n1 a.txt
Posted alextongtong
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux下shuf命令随即排序shuf -n1 a.txt相关的知识,希望对你有一定的参考价值。
有时候我们需要将文本的顺序打乱,也就是随机排序,我以前的做法是写个shell,利用 bash 里的内置变量 $RANDOM 进行排序,然后打印。代码如下:[java] view plain copy
- 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 的解释如下:
[plain] view plain copy
- -R, --random-sort
- sort 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 包。
以上是关于linux下shuf命令随即排序shuf -n1 a.txt的主要内容,如果未能解决你的问题,请参考以下文章