由于工作中需要处理很大的数据文件,使用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. RemoteFX原理简介
  2. jxl解析excel
  3. 烟袋斜街-后海,印象已模糊
  4. sharepoint_wf 启动窗口设计,支配给自由域用户
  5. NET Micro FrameworkのTimerクラス攻略
  6. 时间序列分析导论书摘:预测的一般知识
  7. 价格穿越,跟 普通的大于 小于是有差别的
  8. rocketmq问题记录
  9. [美国]《暮光之城4:破晓(下)》[BD-RMVB.720p.中英双字][2012年冒险幻想]
  10. python识别验证码并自动登录_Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录...
  11. 创新设计思维介绍,理解,以及学习体会
  12. 浅谈大数据的过去、现在和未来
  13. 一位参加过IT培训班的学员经历和建议。
  14. Line电脑版,whatsapp多开软件
  15. linux kobject-uevent(热插拔事件)
  16. 网页-如何控制台调试网页
  17. pd.melt() vs reshape2::melt()
  18. python学习之 re库 正则表达式
  19. 考研预报名、正式报名有区别?
  20. 新的优化目标: energy efficiency

热门文章

  1. 用微信实现苹果电脑截屏control + command + A
  2. 从虚拟机架构到编译器实现导引【一本书的长度】
  3. Javaweb 转发和重定向
  4. Watched 8 Mile
  5. 华为WATCH 3 Pro new 和华为WATCH 3 Pro区别
  6. Go语言:RPC简介及原理介绍
  7. 集成腾讯bugly的热修复功能sdk步骤
  8. OpenAI ChatGPT 我也体验了一下自动写程序
  9. 我们应该怎么看待低代码呢?
  10. 众链网络的小程序怎么样?