更新: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行。