Linux下 對文件行數打亂(亂序排列)


 

 更新:2018-04-2713:25:25

其實直接用shuf就行:

trainname='_train'
testname='_test'
shufname='_shuf'
path="/data/mt/haiouzhang/lang_all/clean/all_lang/all_clean_2/"
for lang in ar bn km my ne tl ur hi kk he fa et bg da pl fi nl cs ro sv sl sk el hu sr hr no ka be mn mr ta uk az hy uz ht  #bg cs da de el en es et fa fi fr he hu id it ja ko ms nl no pl pt sk sr sv th tr vi zh
do    
{
    file=$path$lang
    shuf $file >$lang$shufname   #這句就是打亂。。
    cat $file$shufname | tail -n +10000 >$lang$trainname
    cat $file$shufname | head -n +10000 >$lang$testname
}&
done

 

 

 

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

 

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

 

linux 刪除文件的前幾行

sed -i '1,10d' file

 

grep --color :高亮查詢關鍵字

grep -A 10 xxx : 顯示關鍵字后10行,查異常棧時很有用

grep -B 10 xxx : 顯示關鍵字前10行

grep -C 10 xxx : 顯示關鍵字前后10行

grep -i :不區分大小寫

egrep ‘aaa|bbb’:可以統計aaa或bbb的結果,egrep基本等價 grep -E

【一】從第3000行開始,顯示1000行。即顯示3000~3999行

cat filename | tail -n +3000 | head -n 1000

 



【二】顯示1000行到3000行

cat filename| head -n 3000 | tail -n +1000

 

*注意兩種方法的順序

分解:
tail -n 1000:顯示最后1000行
tail -n +1000:從1000行開始顯示,顯示1000行以后的
head -n 1000:顯示前面1000行

【三】用sed命令

sed -n '5,10p' filename 

 

這樣你就可以只查看文件的第5行到第10行。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM