3

sort有一个--random-sort选项,但这个选项会sort明显变慢:

# time sort --random-sort input >/dev/null

real    0m7.247s
user    0m7.232s
sys     0m0.004s

没有--random-sort,它的速度要快 10 倍:(
之前input没有排序)

# time sort input >/dev/null

real    0m0.625s
user    0m0.616s
sys     0m0.008s

为什么这么慢?他们是一种有效地打乱文件行的方法吗?

4

2 回答 2

3

你可以试试shuf。它应该更快,因为它专用于这项工作。

于 2013-08-06T17:13:46.803 回答
0

或者你可以尝试 awk 选择文件中的随机行,一个例子(我不测试性能):

awk '{a[NR]=$0} 
     END{
         srand(); 
         for(j=0; j<100; j++) {
             i=int(rand()*NR+1);
             print a[i];
         }
     }'
于 2013-08-06T17:14:34.200 回答