從乙個檔案中隨機抽取N行方法

2021-05-26 04:37:28 字數 463 閱讀 3981

從m行的檔案隨機抽取n行(可以假定m>=n),這是需要對資料進行抽樣處理時很長常見的需求。

首先想到的方法是每讀取一行,扔乙個0到m-1的隨機數,如果隨機數小於n,則輸出該行,否則不輸出。perl源**如下:

#!/usr/bin/perl

# subset.pl 

# usage: sub_set.pl file sample_num

if (@argv != 2) '`;

while (<$fh>) '`;

my %labels;

my $k = $sample_num;

for (my $i = 0; $i < $all_num; $i++) = 1;

$k--;

my $i = 0;

while (<$fh>) ) {

print ;

$i++;

這個程式可以嚴格地隨機輸出n行資料。

linux 隨機抽取檔案中N行

1.shell命令 直接用shuf n5 t.txt l則隨機在t.txt 中抽取5列 到l中 2.awkawk begin input file sort nk 1 head n line num awk f t 3.pythonimport random import linecache 乙個1...

從乙個檔案中隨機的選取700萬行資料

從乙個檔案中隨機的選取700萬行資料 encoding utf 8 import random from random import randint oldf open 0807.txt r newf open newfile.txt w n 0 resultlist random.sample r...

shell 隨機從檔案中抽取若干行

shuf n5 main.txt sort r main.txt head 5 awk vn 5 vc wc l file begin shuf 命令的選項 e,echo 將每個引數視為輸入行 i,input range lo hi 將lo 到hi 的每個數字視為輸入行 n,head count 行...