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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值