将文件按照行数以及顺序拆分成多个文件
来源:互联网 发布:软件行为分析 编辑:程序博客网 时间:2024/06/06 01:08
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/bashif [ $# -ne 2 ];then echo "U: sh $0 [file] [fnumber]" echo "E: sh $0 myfile 3" exit 1fisrcfile=$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=1iline=1while 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 0done
- 将文件按照行数以及顺序拆分成多个文件
- 将文件按照行数拆成多个文件的脚本
- 按照符号拆分文件内容
- Linux下按照行数切割文件
- c++ 合并文件以及拆分
- excel按照固定行数拆分多个
- 按照数字将字符串拆分
- 拖拽文件按照指定大小进行拆分
- 将string类型的字符串按照空格拆分成多个字符串
- 拆分文件
- shell命令拆分文本(按照行数、大小、字段值)
- bash shell中数组的运用:按照关键字拆分组把大文件拆成多个小文件
- 将文件切割行数相等n个子文件
- 多个web.config文件按照上面顺序加载
- java Properties 键的顺序按照文件里的顺序排列
- java代码实现CSV文件读取、将数据拆分成多个CSV文件及数据导出到CSV文件
- 数据由一个图层按照要素拆分多个文件或图层,俗称分解、扇出、拆分
- 将mysql执行结果按照固定格式写入文件
- 外键和锁
- 多线程的几种实现方法?同步的几种实现方法?
- Android Goldfish内核编译 + eCryptfs文件加解密系统的内核模块配置
- 数组统计分析的另一种方法
- glShadeModel
- 将文件按照行数以及顺序拆分成多个文件
- socket阻塞与非阻塞,同步与异步、I/O模型
- oracle hr样例数据库用户建立
- PBOC/EMV之电子钱包与电子现金的区别
- cin条件状态及break/continue
- 分治法与折半搜索算法
- ORA-10458: standby database requires recovery
- weblogic 10.3 如何配置热部署 急!!
- CRF++使用小结(转)