成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > Shell腳本實(shí)現(xiàn)亂序排列文件內(nèi)容的多種方法(洗牌問(wèn)題)

Shell腳本實(shí)現(xiàn)亂序排列文件內(nèi)容的多種方法(洗牌問(wèn)題)

熱門(mén)標(biāo)簽:地圖標(biāo)注輻射圖案 安裝外呼系統(tǒng)費(fèi)用 電銷(xiāo)機(jī)器人 劍魚(yú) 衛(wèi)星地圖標(biāo)注地名 寧波智能外呼系統(tǒng)公司 聯(lián)通電話機(jī)器人怎么接 申請(qǐng)公司400電話要注意什么 曲阜400電話辦理 奧維互動(dòng)地圖標(biāo)注參數(shù)

洗牌問(wèn)題:洗一副撲克,有什么好辦法?既能洗得均勻,又能洗得快?即相對(duì)于一個(gè)文件來(lái)說(shuō)怎樣高效率的實(shí)現(xiàn)亂序排列?

ChinaUnix 確實(shí)是 Shell 高手云集的地方,只要你想得到的問(wèn)題,到那里基本上都能找到答案。r2007 給出了一個(gè)取巧的方法,利用 Shell 的 $RANDOM 變量給原文件的每一行加上隨機(jī)的行號(hào)然后根據(jù)這個(gè)隨機(jī)行號(hào)進(jìn)行排序,再把臨時(shí)加上去的行號(hào)給過(guò)濾掉,這樣操作之后得到的新文件就相當(dāng)于被隨機(jī)“洗”了一次:

復(fù)制代碼 代碼如下:

while read i;do echo "$i $RANDOM";donefile|sort -k2n|cut -d" " -f1

當(dāng)然如果你的源文件每行的內(nèi)容比較復(fù)雜的話就必須對(duì)這段代碼進(jìn)行改寫(xiě),但只要知道了處理的關(guān)鍵技巧,剩下的問(wèn)題都不難解決。

另外一篇來(lái)自蘇蓉蓉的用 awk 來(lái)實(shí)現(xiàn)洗牌效果的隨機(jī)文件排序代碼分析(原貼在這里,以及對(duì)此帖的一個(gè)后續(xù)討論,如果你沒(méi)有登錄帳號(hào)的話可以到這里查看精華區(qū)文章)則寫(xiě)的更為詳細(xì):
--------------------------------------------------------------------
關(guān)于洗牌問(wèn)題,其實(shí)已經(jīng)有了一個(gè)很好的shell解法,這里另外給三個(gè)基于AWK的方法,有錯(cuò)誤之處還請(qǐng)不吝指出。

方法一:窮舉

類(lèi)似于窮舉法,構(gòu)造一個(gè)散列來(lái)記錄已經(jīng)打印行出現(xiàn)行的次數(shù),如果出現(xiàn)次數(shù)多于一次則不進(jìn)行處理,這樣可以防止重復(fù),但缺點(diǎn)是加大了系統(tǒng)的開(kāi)銷(xiāo)。

復(fù)制代碼 代碼如下:

awk -v N=`sed -n '$=' data` '
BEGIN{
FS="\n";
RS=""
}
{
srand();
while(t!=N){
  x=int(N*rand()+1);
  a[x]++;
  if(a[x]==1)
    {
        print $x;t++
    }
  }
}
' data

方法二:變換

基于數(shù)組下標(biāo)變換的辦法,即用數(shù)組儲(chǔ)存每行的內(nèi)容,通過(guò)數(shù)組下標(biāo)的變換交換數(shù)組的內(nèi)容,效率好于方法一。

復(fù)制代碼 代碼如下:

#! /usr/awk

BEGIN{
srand();
}

{
b[NR]=$0;
}

END{

C(b,NR);
for(x in b)
  {
    print b[x];
  }}

function C(arr,len,i,j,t,x){

for(x in arr)
  {
      i=int(len*rand())+1;
      j=int(len*rand())+1;
      t=arr[i];
      arr[i]=arr[j];
      arr[j]=t;
  }

}


方法三:散列

    三個(gè)方法中最好的。
    利用AWK中散列的特性(詳細(xì)請(qǐng)看:info gawk 中的7.x ),只要構(gòu)造一個(gè)隨機(jī)不重復(fù)的散列函數(shù)即可,因?yàn)橐粋€(gè)文件每行的linenumber是獨(dú)一無(wú)二的,所以用:

    隨機(jī)數(shù)+每行l(wèi)inenumber    ------對(duì)應(yīng)------>    那一行的內(nèi)容

    即為所構(gòu)造的隨機(jī)函數(shù)。
    從而有:

復(fù)制代碼 代碼如下:

awk 'BEGIN{srand()}{b[rand()NR]=$0}END{for(x in b)print b[x]}' data

    其實(shí)大家擔(dān)心的使用內(nèi)存過(guò)大的問(wèn)題不必太在意,可以做一個(gè)測(cè)試:

測(cè)試環(huán)境:

PM 1.4GHz CPU,40G硬盤(pán),內(nèi)存256M的LAPTOP
SUSE 9.3  GNU bash version 3.00.16 GNU Awk 3.1.4

產(chǎn)生一個(gè)五十幾萬(wàn)行的隨機(jī)文件,大約有38M:

復(fù)制代碼 代碼如下:

od /dev/urandom |dd  count=75000 >data

拿效率較低的方法一來(lái)說(shuō):

洗牌一次所用時(shí)間:

復(fù)制代碼 代碼如下:

time awk -v N=`sed -n '$=' data` '
BEGIN{
FS="\n";
RS=""
}
{
srand();
while(t!=N){
  x=int(N*rand()+1);
  a[x]++;
  if(a[x]==1)
    {
        print $x;t++
    }
  }
}
' data

結(jié)果(文件內(nèi)容省略):
復(fù)制代碼 代碼如下:

real    3m41.864s
user    0m34.224s
sys     0m2.102s

所以效率還是勉強(qiáng)可以接受的。

方法二的測(cè)試:

復(fù)制代碼 代碼如下:

time awk -f awkfile datafile

結(jié)果(文件內(nèi)容省略):
復(fù)制代碼 代碼如下:

real    2m26.487s
user    0m7.044s
sys     0m1.371s

效率明顯好于第一個(gè)。

接著考察一下方法三的效率:

復(fù)制代碼 代碼如下:

time awk 'BEGIN{srand()}{b[rand()NR]=$0}END{for(x in b)print b[x]}' data

結(jié)果(文件內(nèi)容省略):
復(fù)制代碼 代碼如下:

real    0m49.195s
user    0m5.318s
sys     0m1.301s

對(duì)于一個(gè)38M的文件來(lái)說(shuō)已經(jīng)相當(dāng)不錯(cuò)了。
--------------------------------------------------------------------

附帶存一個(gè)來(lái)自 flyfly 寫(xiě)的 python 版本亂序代碼:

復(fù)制代碼 代碼如下:

#coding:gb2312
import sys
import random

def usage():
print "usage:program srcfilename dstfilename"
global filename
filename = ""
try:
filename = sys.argv[1]
except:
usage()
raise()
#open the phonebook file

f = open(filename, 'r')
phonebook = f.readlines()
print phonebook
f.close()

#write to file randomly
try:
filename = sys.argv[2]
except:
usage()
raise()

f = open(filename, 'w')
random.shuffle(phonebook)
f.writelines(phonebook)
f.close()

標(biāo)簽:安康 上饒 三門(mén)峽 江西 大慶 仙桃 大興安嶺 遵義

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Shell腳本實(shí)現(xiàn)亂序排列文件內(nèi)容的多種方法(洗牌問(wèn)題)》,本文關(guān)鍵詞  Shell,腳本,實(shí)現(xiàn),亂序,排列,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Shell腳本實(shí)現(xiàn)亂序排列文件內(nèi)容的多種方法(洗牌問(wèn)題)》相關(guān)的同類(lèi)信息!
  • 本頁(yè)收集關(guān)于Shell腳本實(shí)現(xiàn)亂序排列文件內(nèi)容的多種方法(洗牌問(wèn)題)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    国产精品亚洲一区二区三区妖精| 久久久久久久福利| 色橹橹欧美在线观看视频高清| 欧美专区福利免费| 亚洲天堂男人| 国产成人在线综合| 东北一级毛片| a级黄色一级片| 色狠狠一区二区三区| 涩涩网站在线观看| 日韩在线资源| 91福利在线免费| 欧美××××黑人××性爽| 久久综合中文色婷婷| 粗暴91大变态调教| 日韩av免费看| 国产成人无码精品久在线观看| 国产高清中文字幕在线| 中文字幕有码在线观看| 国产一区二区三区色淫影院| 久久久天堂av| 久久精品一级| 国产福利电影在线| 国产亚洲精品久久777777| 四虎精品影院在线观看视频| 欧美精品福利在线| 97人人爽人人| 四虎国产精品免费观看| 天天操夜夜逼| 91直播在线观看| 岛国一区二区在线观看| 97超碰中文字幕| 欧美日韩免费高清| 黄在线免费看| 亚洲在线黄色| 成年人的黄色片| xxav视频| 一区二区视频观看| 99免费精品| 国产美女情趣调教h一区二区| 亚洲国产成人va在线观看麻豆| 日本人妖在线| 亚洲天堂avav| 老司机午夜精品99久久| 久久精品国产亚洲av麻豆蜜芽| 欧美亚洲tv| 成人免费在线电影网| 欧美日本视频在线| 38少妇精品导航| 国家队第一季免费高清在线观看| 国产精品 日产精品 欧美精品| 97成人在线观看视频| 成人av一级片| 日韩成人亚洲| 国产欧美久久久| av网站无病毒在线| 夜夜躁狠狠躁日日躁婷婷小说| 国产一级做a爱片久久毛片a| 91欧美一区二区| 国产日韩换脸av一区在线观看| 999精品色在线播放| 欧美h视频在线观看| 国产精品九九视频| 91久久精品国产91性色69| 羞羞视频在线观看不卡| 欧美一区一区| 色香阁99久久精品久久久| 国产一区二区免费在线| h片在线观看| 国产美女福利视频| 国产乱淫片视频| 4kfree性满足欧美hd18| 99精品视频精品精品视频| 成人污视频在线观看| 欧美亚洲国产免费| 欧美激情护士| 亚洲精品视频久久| 91日韩在线专区| 欧美性视频在线播放| 亚洲乱码精品久久久久..| 黄色成人在线播放| 午夜老司机在线观看| 日韩高清有码在线| 欧美视频专区一二在线观看| 国产一区一一区高清不卡| 国产自产v一区二区三区c| 欧美日本精品一区二区三区| 日韩资源在线观看| 性猛交富婆╳xxx乱大交一| 国产精品水嫩水嫩| 国模娜娜一区二区三区| av电影天堂一区二区在线观看| 中文字幕综合一区| 国产成人午夜精品5599| 青草全福视在线| 国产成人精品网站| 欧美亚洲一区二区三区| 自拍偷拍亚洲区| 欧美日韩国产精品一区二区三区| 免费福利在线视频| av亚洲免费| 丰满爆乳一区二区三区| 日本少妇高清视频| 中文无码日韩欧| 亚洲美女偷拍久久| 2020欧美日韩在线视频| 成人在线直播| 欧美偷拍第一页| 成人国内精品久久久久一区| 福利一区二区在线观看| 涩涩视频网站在线观看| 美女黄网久久| 美女福利视频网| 日本高清视频网站www| 欧美色图第二页| 色婷婷综合视频在线观看| 亚洲婷婷综合久久一本伊一区| 亚洲精品自在在线观看| 国产av第一区| 男女一区二区三区免费| 日本美女视频网站| 国产日韩欧美一区二区三区四区| 99久久精品国产一区二区三区| 日韩在线无毛| 中文字幕在线中文字幕日亚韩一区| 97久久人人超碰| 亚洲qvod图片区电影| 国产在线精品一区二区三区》| 中文乱码字幕高清在线观看| 异国色恋浪漫潭| 伊人久久大香线蕉成人综合网| 欧美成人精品一区| gogogo免费高清日本写真| 精品少妇theporn| 九色视频在线观看免费| 五月天精品一区二区三区| 波多野结衣在线观看| 99久久99久久精品国产片果冻| 麻豆蜜桃在线观看| 精品久久久久久久无码| 亚洲专区欧美专区| 欧美成人免费大片| 国产剧情av在线播放| 久精品免费视频| 亚洲人成网77777色在线播放| 在线观看免费视频黄| 国产在线资源| 鲁大师精品99久久久| 欧美高清另类hdvideosexjaⅴ| 97中文在线| 老司机午夜免费福利| 日韩不卡av在线| 黑人巨大猛交丰满少妇| www.欧美日本| 99久久久久久99| 国产精品国产三级国产aⅴ中文| 亚洲精品人成网在线播放影院| 久久久久看片| 国产日韩在线不卡| 91色porny蝌蚪| 日韩在线观看中文字幕| 男女污污视频在线观看| 色天天综合网| 成人97人人超碰人人99| 国产精品无码午夜福利| 日本dvd播放| 日本高清中文字幕在线| 亚洲影院天堂中文av色| 亚洲最好看的视频| 国产人妻777人伦精品hd| 青青操视频在线观看| 91成人精品在线| av免费播放网站| 日韩中文一区二区| 日韩电影第一页| 国产老女人精品毛片久久| 亚洲精品一区二区三区影院忠贞| 欧美日韩一区二区三区不卡视频| av电影一区二区| 在线观看三级视频| 国产精品国产亚洲精品看不卡15| 日韩在线激情视频| 久久国产精品99国产| 亚洲精华国产精华精华液网站| 国产欧美午夜| 国产一区二区三区黄视频| 亚洲精品系列| 久久国产激情视频| 欧美诱惑福利视频| 1024精品久久久久久久久| 欧美激情一级二级三级在线视频| 日韩精品视频一区二区| 伊人一区二区三区久久精品| 午夜dv内射一区二区| 91高清在线视频| 天天综合网在线观看| 青青草国产精品亚洲专区无| 日本一级片免费看| 国产一区二区三区四区五区传媒| 九九视频精品在线观看| 欧洲一区二区在线观看| 天天干天天操天天做| 香蕉视频黄在线观看| 欧美黄色高清视频| 国产精品久久久一本精品| www.久久艹| h片在线观看| 久久综合网hezyo| 中文字幕91爱爱| 成年网站在线观看视频| 久久久久亚洲av无码网站| 免费成人黄色| 老司机精品视频网| 久久精品免视看国产成人| 欧美videosex性极品hd| 高清无码一区二区在线观看吞精| 免费在线观看国产黄| 91精品在线视频观看| 亚洲第一区视频| 欧美黑人巨大xxxxx| 亚洲成人激情图| 亚洲精品成人久久电影| 国产欧美精品xxxx另类| 精品美女在线观看视频在线观看| 欧美高清视频看片在线观看| 蜜桃视频在线网站| wwwwxxxx国产| www.成人在线观看| 国内精品久久久久久久果冻传媒| 久久99精品久久久久久欧洲站| 日韩福利在线播放| 性欧美激情精品| 国产精品50p| 在线视频一二三区| 妓院一钑片免看黄大片| 久久综合九色综合久久久精品综合| 午夜伦理大片视频在线观看| 大桥未久av一区二区三区中文| 日本在线小视频| 欧美在线日韩精品| 国产精品无码99re| 午夜剧场高清版免费观看| 懂色av蜜臀av粉嫩av喷吹| 国内精品小视频| 欧美视频中文字幕| 亚洲国产精品免费视频| 一个人看的www视频免费观看| 亚洲大肥女ass| 亚洲 欧美 激情 小说 另类| 日韩精品电影一区亚洲| 欧美一区二区三区在线视频| 国产精品久久久久久| 亚洲经典三级| 成人图片小说| 精品国产区一区二区三区在线观看| 日本福利视频导航| 欧美高清性hdvideosex| 少妇又色又爽又黄的视频| 成年网站在线免费观看| 亚洲午夜18毛片在线看| 最新国产拍偷乱拍精品| 天堂一区二区三区四区| 国产精品久久久久久久久久免费| 国产女人18毛片水真多18精品| 91福利在线视频| 亚洲色图图片| 亚洲第一精品久久忘忧草社区| 永久亚洲成a人片777777| 久久久精品高清| 免费h片在线| 免费国产羞羞网站视频| 先锋影音av资源在线| 久久久久九九精品影院| 在线亚洲午夜片av大片| 欧洲精品久久一区二区| 色老头一区二区| 99久久99九九99九九九| 无码人妻丰满熟妇啪啪网站| 亚洲一区欧美在线| 蜜桃麻豆av在线| 19j韩国主播韩宝贝在线| 国产精品一级伦理| 欧美久久久久久久久久久久久| 麻豆精品在线视频| 日韩成人久久久| 三级无遮挡在线观看| 不卡在线一区二区| 自拍偷拍免费精品| 人与人69性欧美三人交| 91在线无精精品一区二区| 亚洲电影在线| 凹凸国产熟女精品视频| 4444亚洲人成无码网在线观看| 91网站在线观看视频| 久久精品国产第一区二区三区| 2024短剧网剧在线观看| 国产一区欧美一区| 成人一二三区| 欧美另类极品videosbest视| 欧美专区视频| 免费在线看黄网址| 亚洲最大福利网站| 91精品国产综合久久久蜜臀粉嫩| 中文字幕亚洲综合久久| 国产一区免费在线| 欧美亚洲午夜视频在线观看| 91亚洲精品久久久蜜桃借种| 国产精品欧美一区二区| 亚洲精品动漫久久久久| julia一区二区中文久久94| 国产女人水真多18毛片18精品视频| 黑人精品xxx一区| 免费偷拍视频网站| 亚洲午夜久久久久久久久红桃| 国产婷婷一区二区| 黄色av网站在线| 亚洲精选av在线| 97免费在线视频| 卡一卡2卡三精品| 精品国产999久久久免费| 欧美日韩国产一区二区三区不卡| 亚洲japanese制服美女| av免费观看国产| 欧美贵妇videos办公室| 亚洲综合自拍| 久久精品日产第一区二区三区精品版| 三级精品视频| 久久99久久|