linux 隨機抽取檔案中N行

2021-09-25 15:54:33 字數 760 閱讀 2035

1.shell命令

直接用shuf -n5 t.txt > l則隨機在t.txt 中抽取5列 到l中

2.awk

awk 'begin '  input_file | sort -nk 1 | head -n line_num | awk -f "\t" ''
3.python
import random

import linecache

#乙個1到1000w的list列表

random_number_list=[x for x in range(10000000)]

#從1到10w的列表中隨機獲取10w個數字,之後當行號

randon_data_line= random.sample(random_number_list,100000)

#開啟乙個要寫入你隨機出來10w行的資料,a+相當於shell的「>>」追加寫

write_fname=open('aa.txt','a+')

#迴圈10w的那個列表

for tmp_line in randon_data_line:

#讀取隨機10w行資料

tmpdata=linecache.getline('read_data.txt',tmp_line)

#並寫入到你要寫入的檔案aa.txt

write_fname.write(tmpdata)

#關閉aa.txt

write_fname.close()

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

從m行的檔案隨機抽取n行 可以假定m n 這是需要對資料進行抽樣處理時很長常見的需求。首先想到的方法是每讀取一行,扔乙個0到m 1的隨機數,如果隨機數小於n,則輸出該行,否則不輸出。perl源 如下 usr bin perl subset.pl usage sub set.pl file sampl...

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 行...

Oracle中隨機抽取N條記錄

一 oracle訪問資料的基本方法 1 全表掃瞄 full table scan 執行全表掃瞄,oracle讀表中的所有記錄,考查每一行是否滿足where條 件。oracle順序的讀分配給該錶的每乙個資料塊,且每個資料塊oracle唯讀一次.這樣全表掃瞄能夠受益於 多塊讀。2 取樣表掃瞄 sampl...