awk rand函数问题

   awk -v rand_str=$RANDOM '
     47     BEGIN{m_num=ARGV[2]; s_num=ARGV[3]; srand(rand_str);
     48     #蓄水池抽样选前s_num个
     49     for(i=1;i<=m_num;i++){A[i]=i};
     50     for(i=s_num+1; i<=m_num;i++)
     51     {---
     52          M=int(rand()*i)+1;
     53          if (M<s_num) {
     54              tmp=A[M];
     55              A[M]=A[i];
     56              A[i]=tmp;
     57          }
     58     }
     59     for(i=s_num+1;i<=m_num;i++){delete A[i]}#删除多余的
     60     slen=asort(A,SA);
     61     #for(i=1;i<=s_num;i++){print SA[i]}
     62     INDEX=1;
     63     }
     64     {
     65     #each line
     66     if(SA[INDEX]==NR){INDEX++;print $0}
     67     }' $mark_file $mark_num $sample_num > $sample_file
     68     hits=$(awk '{if ($2==1){print $2}}' $sample_file |wc -l);
     69     rm -rf $sample_file
     70     return $hits
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值