awk -vf=3 -vl="`wc -l file`" 'BEGIN{p=int(l/f);q=(l%f);for(n=1;n<=f;n++)a[n]=n*p+((n<=q)?++x:x)}{if(NR>a[i])i++;print >"file"i}' file

这里的-vf=3 表示将file拆分成3个文件,另外还有一种解法,如下所示:

#!/bin/bash

if [ $# -ne 2 ];then

echo "U: sh $0 [file] [fnumber]"

echo "E: sh $0 myfile 3"

exit 1

fi

srcfile=$1 #原始文件

fnumber=$2 #需要拆分的文件个数

eval $(cat $srcfile | awk -vn=$fnumber 'END{print "total="NR,"fline="int(NR/n),"extra="NR%n,"cline="int(NR/n)+1}')

# total:原始文件总行数

# fline:拆分文件平均行数

# extra:需要扩展行数的文件个数

# cline:当前拆分文件行数

i=1

iline=1

while true;do

filename="file$i"

# 按行的顺序分别写入文件中

if [ $extra = 0 ];then

echo "$filename lines: $fline"

tail -n +$iline $srcfile | head -n $fline > $filename

iline=$((iline+fline))

else

echo "$filename lines: $cline"

tail -n +$iline $srcfile | head -n $cline > $filename

iline=$((iline+cline))

extra=$((extra-1))

fi

((i++))

[ $iline -ge $total ] && exit 0

done

linux怎么随机按行打散文件,linux shell 将文件按照行数以及顺序拆分成多个文件...相关推荐

  1. linux shell 切割文件,linux shell 将文件按照行数以及顺序拆分成多个文件

    awk -vf=3 -vl="`wc -l file`" 'BEGIN{p=int(l/f);q=(l%f);for(n=1;n<=f;n++)a[n]=n*p+((n< ...

  2. 如何快速的将EXCEL表格数据拆分成多个文件

    介绍 前不久好几位朋友都问到,如何将一个EXCEL文件里面很多条数据拆分成多个文件,比如一个EXCEL表里面有90万行数据,需要按照每1万行拆分成一个文件,也就是需要将这表里面的90万行数据拆分到90 ...

  3. 如何快速的将EXCEL表格数据拆分成多个文件?

    下面我们就来看看如何用VBA来实现拆分工作. 首先,在EXCEL里面插入一个模块,代码如下:第二,在EXCEL工作表里面插入一个按钮控件,用于调用并执行以上模块. Sub copybat()Dim i ...

  4. excel快速拆分成多个文件

    excel快速拆分成多个文件 1.点击开发工具栏下的 Visual Basic 2.弹出窗选择 插入-模块 3.复制代码 执行 Sub copybat()Dim i, j, k, m, r As In ...

  5. 拆分pdf文件最简单的方法?PDF拆分成多个文件工具推荐

    很多朋友会在日常生活工作中遇见PDF文件过大的情况,这时候就有两个办法解决文件过大的办法,一个是压缩PDF,但是这种方法会影响到文件内容的清晰度,这就会劝退一部分用户,选择另一种方法,拆分PDF.那么 ...

  6. 将excel按照某一列拆分成多个文件

    1.打开目标excel,按alt + f11键打开VBE窗口 2.选择插入->模块粘贴下面代码到编辑器中 Sub 保留表头拆分数据为若干新工作簿()     Dim arr, d As Obje ...

  7. 多个sheet拆分成多个文件_Pandas拆分DataFrame到多个文件中

    背景:有20万行的数据,需要按照1万5行进行拆分: 核心:借助余数拆分组,再取子数据集: 示例: 步骤一取余数 image-20201119110009301 步骤二:取子数据集 image-2020 ...

  8. 零基础教程-如何快速将EXCEL表格数据拆分成多个文件

    工具:wps 1.首先一般人都是没有安装VBA宏插件的,此时我们就需要先下载并安装一个wps VBA宏插件,安装成功后;(直接百度搜索下载并安装即可,网上很多,示例如下)安装插件成功后,需要关闭wps ...

  9. 根据分类字段将电子表格拆分成多个文件

    利用本脚本可以将Excel中数据,根据分类字段生成不同的文件. 需要的文件:源数据及配置文件(data.xls),模板文件(style.xlt),脚本文件(xx.vbs). 配置信息: 分类列号:用于 ...

最新文章

  1. 一文了解YOLO-v4目标检测
  2. 关闭占用某一端口号的进程 win10
  3. 2020\Simulation_1\2.约数个数
  4. linux编译安装的报错,linux编译安装时常见错误解决办法
  5. mysql集群多管理节点_项目进阶 之 集群环境搭建(三)多管理节点MySQL集群
  6. 《面向模式的软件体系结构2-用于并发和网络化对象模式》读书笔记(13)--- 线程安全接口和双检查加锁优化...
  7. nginx js、css多个请求合并为一个请求(concat模块)
  8. 再更。。2019保研北大夏令营+九推
  9. 计算机桌面保护程序,屏幕保护程序软件
  10. RTL8153B ,瑞昱千兆网卡芯片 ,扩展坞HUB千兆网口芯片。
  11. C51编译出现 test.c(86): error C231: 'i2c_readbyte': redefinition
  12. Vue拦截器报错Uncaught (in promise) TypeError Cannot read properties of undefined (reading ‘code‘)
  13. 超级详细-NMOS、PMOS的工作原理及相关内容整理(下)
  14. 【ng-alain】解决sf设置了visibleIf的字段,默认执行required验证
  15. 类似京东商城客户端应用iOS源码
  16. 免费生成微信小程序的经验
  17. 敏捷基本概念——三大角色五大会议
  18. 专升本计算机的数学考不考正态分布,高考成绩不一定是正态分布
  19. Postgressql获取当前系统的年份及上一年和下一年
  20. django admin 验证码点击刷新

热门文章

  1. [MySQL] 2059 - Authentication plugin ‘caching_sha2_password‘ cannot be loaded dlope
  2. 【Flink】connection indicates remote task manager was lost
  3. 【Flink】Rowtime timestamp is null. Please make sure that a proper TimestampAssigner is defined and th
  4. 95-290-380-源码-内存管理-Buffer-NetworkBufferPool简介
  5. Spring : 依赖注入(IoC)控制反转
  6. SpringBoot之Bean之条件注入@ConditionalOnExpression
  7. Spring MVC 响应数据、作用域对象
  8. buffer string builder简单说明
  9. 避免线上故障的10条建议
  10. ubuntu如何安装python36_在Ubuntu 16.04下安装Python3.6,ubuntu1604,Python36