相关疑难解决方法(0)

251
推荐指数
6
解决办法
10万
查看次数

随机从文件中选择行而不用Unix扼杀它

我有一个10 ^ 7行文件,其中我想从文件中随机选择1/100行.这是我所拥有的AWK代码,但它会预先包含所有文件内容.我的PC内存无法处理这样的问题.还有其他办法吗?

awk 'BEGIN{srand()}
!/^$/{ a[c++]=$0}
END {  
  for ( i=1;i<=c ;i++ )  { 
    num=int(rand() * c)
    if ( a[num] ) {
        print a[num]
        delete a[num]
        d++
    }
    if ( d == c/100 ) break
  }
 }' file
Run Code Online (Sandbox Code Playgroud)

unix linux awk random-sample file-processing

51
推荐指数
7
解决办法
4万
查看次数

如何随机抽样文件内容?

我有一个内容文件

abc
def
high
lmn
...
...
Run Code Online (Sandbox Code Playgroud)

文件中有超过200万行.我想从文件中随机采样行并输出50K行.有关如何解决这个问题的任何想法?我正在考虑Perl及其rand功能(或者一个方便的shell命令将是整洁的).

相关(可能重复)问题:

random perl sample file

3
推荐指数
2
解决办法
4250
查看次数

标签 统计

linux ×2

random ×2

unix ×2

awk ×1

command-line ×1

file ×1

file-processing ×1

perl ×1

random-sample ×1

sample ×1