1. 程式人生 > >Linux下 對檔案行數打亂(亂序排列)

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