由于工作中需要处理很大的数据文件,使用split命令将其切分成较小的文件后再进行处理是一个不错的选择。

在默认情况下,split以1000行为单位进行切分,如果不足1000行的会另外输出到一个文件。
输出文件由前缀和后缀组成,默认前缀为"x",默认后缀是从a开始带两个字符,如"aa"、"ab"等,当下一个生成的文件到达最后一个字符时,字符数量会加2,如:'yz', 'zaaa'...通过这种扩展方式,输出的文件数量没有限制。
但要注意:如果通过-a选项指定了后缀的长度,当后缀序列用完后split会报错,已经切分好的文件会保留。

我的split版本是8.22。支持的选项如下:

-l LINES 或者 --lines=LINES

将文件按 LINES 行切分到输出文件中。

-b SIZE 或者 --bytes=SIZE

将文件按指定的SIZE容量大小来切分到输出文件中
可以使用数值的形式或者单位的形式来表示
'MB' <==> 1000*1000
容量大小的相关含义:KB表示1000字节 K表示1024字节,其他容量单位类似。
切分后的文件中可能会存在不完整的行 到容量的分割点时,某一行可能还没有结束,会导致该行被切割成了两行或多行。

但不用担心数据不完整,将顺序相邻的文件合并后(比如使用cat将两个文件内容拼到一起),不完整的行又会合并成一行。

-C 或者 --line-bytes=SIZE

跟-b都是按SIZE容量大小来切割,不同的是会以接近设置的最大容量切割,而不是一定是设置的容量。当行的大小不超过设置的容量时,会保证文件中每行内容的完整性,每个文件的容量会近似设置的最大容量。

--filter=COMMAND

直接使用split也可以切分压缩文件,但是一般无法指定压缩文件的扩展名。
split -b200G test.xz big-
通过该选项,并结合FILE环境变量可以为每个切分后的压缩文件指定扩展名。
当有大的压缩文件要切分时,可以使用下面的命令
xz -dc BIG.xz | split -b200G --filter='xz > $FILE.xz' - big-
如果是1:10的压缩比,以上命令会将1T的文件切分成50个20G的文件,切分后的文件名类似:'big-aa.xz', 'big-ab.xz'

-n CHUNKS 或者 --number=CHUNKS

将文件切分成指定数量的文件,有3种模式:1、一般模式  2、l模式 3、r模式
块数(CHUNKS)的值可以设置为如下的形式:

N      以当前INPUT的大小切分成N个文件
          K/N    仅将N个文件中的第K个输出到标准输出
          l/N    切分成N个文件,同时保证行不会被切断
          l/K/N  将N个文件中的第K个输出到标准输出,同时保证行不会被切断
          r/N    类似l模式,但使用轮询分配
          r/K/N  类似r/N,但仅将N个文件中的第K个输出到标准输出

(1)、一般模式下,将 INPUT 切分成 N 个块后剩余的字节,会分配给最后一个块。初始计算后input中再加入字节会被丢弃(除非使用r模式)。只要指定了N,即使INPUT少于N行或者INPUT中断,也始终会切分成N个文件。可能存在行被切断的情形。


(2)、在l模式下,块的大小约为INPUT大小/N,INPUT 会被分成 N 个相等大小的部分,最后分配剩余的。行不会被切断,最终的输出文件可能不会正好等于计算的切分大小;如果有的行非常长,有的块最终会是空的。

(3)、在r模式下,会将文件行按块数挨个分配给相应的块。INPUT可以是任意大小,可直接用管道。

-a LENGTH 或者 --suffix-length=LENGTH

指定文件后缀名长度
如果LENGTH为0,则跟默认设定一致,长度2,且在必要时会自动将长度加2。

-d 或者 --numeric-suffixes[=FROM]

将后缀设置为数字而不是默认的小写字母。
如果指定FROM,则从FROM开始计数,否则从0开始。
需要注意,指定 FROM 值会禁用默认的自动后缀长度扩展,如果后缀值超过了“99”,需要指定“-a”选项。

--additional-suffix=SUFFIX

输出文件名后附加一个额外的SUFFIX(后缀)。利用该选项可以生成文件的扩展名。
注意:SUFFIX不能包含斜线。

-e 或者 --elide-empty-files

当指定--number选项时,如果文件行数比切分后的块数少,或者有非常长的行跨越了一个块都会造成生成空的(0长度)输出文件。指定该选项后,切分时不会生成空文件,且输出文件序列号也还是连续顺序生成的。

-u 或者 --unbuffered

不使用缓冲,立即将输入复制到输出。在'--number r/...'模式下,不使用缓冲会慢很多。

--verbose

切分前输出诊断信息

--version

显示版本信息

大文件的切分--split命令选项详解相关推荐

  1. java 输入流可以合并吗_Java 使用IO流实现大文件的分割与合并实例详解

    java 使用IO流实现大文件的分割与合并 文件分割应该算一个比较实用的功能,举例子说明吧比如说:你有一个3G的文件要从一台电脑Copy到另一台电脑, 但是你的存储设备(比如SD卡)只有1G ,这个时 ...

  2. linux按照大小分割文件夹,split命令_Linux split 命令用法详解:分割任意大小的文件...

    split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等. 选项-b:值为每一输出档案的大小,单位为 byte. -C:每一输出档中,单行的最大 ...

  3. scp 保留文件属组_SCP命令用法详解-hdparm工具参数详解-改变文件组命令chgrp和改变文件属主命令chown_169IT.COM...

    scp命令跟cp命令类似,只不过cp命令是在同一台机器上用的,scp是在两台机器上复制传输数据的命令.scp实质相当于利用SSH协议来传输数据的cp命令. 用法举例: 1.复制远程服务器的文件到本地: ...

  4. html文件设置ftp6,ftp命令大全详解

    来熟悉熟悉ftp命令,对于服务器之间的文件传输太有用啦,不会怎么能行呢! 先来看看基础的命令,包括了连接,列出列表,下载,上传,断开这最基础的命令,会这些,在使用ftp命令行就毫无压力啦! 1. 连接 ...

  5. Linux开发常用ps命令选项详解

    [摘要]本文介绍了在Linux应用/内核开发调试中,经常需要用到的两个选项组合,当然,如果你需要查看更多更详尽的选项说明,可以参考man说明文档,即命令行下输入man ps进行查看. aux选项组合 ...

  6. PCLint选项详解

    目  录 18 9.1 Source Insight的正规表达式 ........................................ .......... 18 9 附录:PCLint在 ...

  7. u-boot 中 tftp、sf命令使用详解

    一. tftp命令使用详解 准备工作 电脑端环境:tftpd32 软件 目标板环境:uboot 注: a.将目标板与电脑用网线设置好,并且将电脑的防火墙关闭: b.将电脑与目标板的ip地址设置成同一个 ...

  8. Linux如何全盘搜索MySQL文件_Linux上的文件搜索命令实例详解

    locate 基础了解 locate命令搜索的后台数据库路径:/var/lib/mlocate/mlocate.db ls -hl /var/lib/mlocate total 1.2M -rw-r- ...

  9. Ffmpeg快速命令使用 Ffmpeg选项详解 Ffmepg格式详解 常见视频文件格式详解

    http://www.ffmpeg.com.cn/index.php/%E9%A6%96%E9%A1%B5 Ffmpeg快速命令使用 From Ffmpeg工程组 Jump to: navigatio ...

最新文章

  1. 【Android】Activity和PopupWindow都实现从底部弹出或滑出选择菜单或窗口
  2. 第9课_2_dbsoft安装
  3. Python总结:保留小数点任意位round函数不够精确
  4. mysql 2008数据库配置文件_SQL Server 2008数据库的配置及连接
  5. 改进粒子群优化算法(PURPSO)的MATLAB源程序
  6. mysql ddl log 源码_MySQL中ddl_log.log初步认识
  7. pushViewController自定义动画http://blog.csdn.net/ralbatr/article/details/22039233
  8. jsp和mysql答辩_如何应对JSP连接MySQL数据库问题_网站数据库怎么连接到网页答辩问题...
  9. 趣味思考--苹果剩余最大量
  10. 属性篇(2)—If you love css …
  11. c语言中学生信息管理系统中删除学生信息,学生信息管理系统C语言编程
  12. Html实现Excel模板下载
  13. IT 生涯初探与工作经验分享【计算机、软件工程相关专业毕业生应该知道的事】---- 来自2008级学长的掏心窝分享
  14. 移动硬盘无法访问怎么办?还能恢复数据吗?
  15. 全球家务机器人发展现状及未来趋势
  16. 中标麒麟系统下(Neokylin7)达梦数据库的安装(DM8)
  17. OSPF3的多区域生成与链路状态通告
  18. 树莓派安装AdGuard Home
  19. Java爬虫之jsoup的使用
  20. 跨平台应用 Qt 对决 HTML5

热门文章

  1. halcon 网状产品表面破损检测
  2. 从根上理解MongoDB的ObjectId生成原理!
  3. 电脑设置了计算机管理员密码但是密码忘了怎么办?
  4. element-ui带输入建议的input框踩坑--输入建议空白
  5. 如何对 SQL 语句进行优化
  6. 基于RisParity+BlackLitterman的因子择时
  7. ”世人听完先是给了5ooo多一颗丹就能培养一个剑皇级高手的丹药
  8. 网页播放音频的3种方法
  9. java 数字从小到大输出_Java如何实现将数字由小到大输出
  10. 个、十、百、千、万、亿、兆、京、垓、秭、穰、沟、涧、正、载