专栏首页SmartSiLinux 使用split命令分割文件

Linux 使用split命令分割文件

1. 概述

split 命令可以将一个大文件分割成很多个小文件。在默认情况下将按照每1000行切割成一个小文件,默认前缀为 x。没有输入或输入为 - 时,从标准输入中读取。

2. 语法:

split [OPTION]... [INPUT [PREFIX]]

3. 选项

-l : 指定每多少行切成一个小文件。
-b : 指定每多少字节切成一个小文件。
-C : 每一输出档中,单行的最大 byte 数。
-d : 使用数字作为后缀。

4. 实例

4.1 按行分割

xiaosi@ying:~/test/input$ split -6 a.txt

或者

xiaosi@ying:~/test/input$ split -l 6 a.txt

执行以上命令后,会将原来的大文件 a.txt 切割成多个以 x 开头的小文件。而在这些小文件中,每个文件都至多6行数据(最后一个文件有可能不满6行)。

xiaosi@ying:~/test/input$ ll
总用量 32
drwxrwxr-x 2 xiaosi xiaosi 4096  4月  8 18:19 ./
drwxrwxr-x 6 xiaosi xiaosi 4096  8月 24  2017 ../
-rw-rw-r-- 1 xiaosi xiaosi  924  4月  8 18:18 a.txt
-rw-rw-r-- 1 xiaosi xiaosi  198  4月  8 18:19 xaa
-rw-rw-r-- 1 xiaosi xiaosi  198  4月  8 18:19 xab
-rw-rw-r-- 1 xiaosi xiaosi  198  4月  8 18:19 xac
-rw-rw-r-- 1 xiaosi xiaosi  198  4月  8 18:19 xad
-rw-rw-r-- 1 xiaosi xiaosi  132  4月  8 18:19 xae
xiaosi@ying:~/test/input$ cat a.txt | wc -l
28
xiaosi@ying:~/test/input$ cat xae | wc -l
4

4.2 按文件大小分割

xiaosi@ying:~/test/input$ split -b50M b.txt

执行以上命令后,会将原来的大文件 b.txt 切割成多个以 x 开头的小文件。而在这些小文件中,每个文件大小都为50M(最后一个文件有可能不满50M)。

xiaosi@ying:~/test/input$ ll
总用量 322296
drwxrwxr-x 2 xiaosi xiaosi      4096  4月  8 18:25 ./
drwxrwxr-x 6 xiaosi xiaosi      4096  8月 24  2017 ../
-rw-rw-r-- 1 xiaosi xiaosi       924  4月  8 18:18 a.txt
-rw-rw-r-- 1 xiaosi xiaosi 165000000  4月  8 11:53 b.txt
-rw-rw-r-- 1 xiaosi xiaosi  52428800  4月  8 18:25 xaa
-rw-rw-r-- 1 xiaosi xiaosi  52428800  4月  8 18:25 xab
-rw-rw-r-- 1 xiaosi xiaosi  52428800  4月  8 18:25 xac
-rw-rw-r-- 1 xiaosi xiaosi   7713600  4月  8 18:25 xad

4.3 修改后缀

上述示例中,文件被分割成多个带有字母的后缀文件,如果想用数字后缀可使用 -d 参数,同时可以使用 -a 来指定后缀的长度:

xiaosi@ying:~/test/input$ split -b50M b.txt -d -a 3

执行以上命令后,会将原来的大文件 b.txt 切割成多个以 x 开头后面为数字的小文件:

xiaosi@ying:~/test/input$ ll
总用量 322296
drwxrwxr-x 2 xiaosi xiaosi      4096  4月  8 18:36 ./
drwxrwxr-x 6 xiaosi xiaosi      4096  8月 24  2017 ../
-rw-rw-r-- 1 xiaosi xiaosi       924  4月  8 18:18 a.txt
-rw-rw-r-- 1 xiaosi xiaosi 165000000  4月  8 11:53 b.txt
-rw-rw-r-- 1 xiaosi xiaosi  52428800  4月  8 18:36 x000
-rw-rw-r-- 1 xiaosi xiaosi  52428800  4月  8 18:36 x001
-rw-rw-r-- 1 xiaosi xiaosi  52428800  4月  8 18:36 x002
-rw-rw-r-- 1 xiaosi xiaosi   7713600  4月  8 18:36 x003

4.4 指定输出文件名前缀

xiaosi@ying:~/test/input$ split -b50M b.txt split_

执行以上命令后,会将原来的大文件 b.txt 切割成多个以 split_ 开头的小文件:

xiaosi@ying:~/test/input$ ll
总用量 322296
drwxrwxr-x 2 xiaosi xiaosi      4096  4月  8 18:41 ./
drwxrwxr-x 6 xiaosi xiaosi      4096  8月 24  2017 ../
-rw-rw-r-- 1 xiaosi xiaosi       924  4月  8 18:18 a.txt
-rw-rw-r-- 1 xiaosi xiaosi 165000000  4月  8 11:53 b.txt
-rw-rw-r-- 1 xiaosi xiaosi  52428800  4月  8 18:41 split_aa
-rw-rw-r-- 1 xiaosi xiaosi  52428800  4月  8 18:41 split_ab
-rw-rw-r-- 1 xiaosi xiaosi  52428800  4月  8 18:41 split_ac
-rw-rw-r-- 1 xiaosi xiaosi   7713600  4月  8 18:41 split_ad

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Hadoop Shell中判断HDFS文件是否存在

    Hadoop提供了-test命令可以验证文件目录是否存在。我们首先看一下-test命令的使用用法:

    smartsi
  • Hadoop SSH免密码登录

    记得要把authorized_keys文件放到.ssh目录下,与rsa等文件放在一起,否则免登录失败,debug如下(ssh -vvv localhost进行调...

    smartsi
  • JVM 垃圾收集器

    本文“垃圾收集器”节选自《深入理解Java虚拟机:JVM高级特性与最佳实践》【作者:周志明】

    smartsi
  • 一款Python实用神器,5 行 Python 代码 实现一键批量扣图

    今天给大家分享一款Python装逼实用神器,在日常生活或者工作中,经常会遇到想将某张照片中的人物抠出来,然后拼接到其他图片上去。专业点的人可以使用 PhotoS...

    测试开发技术
  • Python 绘制你想要的数学函数图形

    Python 非常热门,但除非工作需要没有刻意去了解更多,直到有个函数图要绘制,想起了它。结果发现,完全用不着明白什么是编程,就可以使用它完成很多数学函数图的绘...

    py3study
  • 聊聊nacos的TcpSuperSenseProcessor

    nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/TcpSuperSe...

    codecraft
  • 聊聊nacos的TcpSuperSenseProcessor

    nacos-1.1.3/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/TcpSuperSe...

    codecraft
  • 海康、大华网络摄像机RTSP URL格式组成及参数配置

    经常有开发者咨询我们关于海康、大华网络摄像机RTSP url拼接规则和相关参数配置,虽然很简单,考虑到资料不全,写个博客记录下:

    daniulive
  • SAP最佳业务实践:SD–回扣处理(926)-1业务概览

    用途 回扣(协议)是一种向客户回溯付款的特殊折扣。 此折扣基于预定义时间期间的客户销售量,回扣将由客户服务人员通过创建贷项凭单进行结算,此贷项凭单将按照先...

    SAP最佳业务实践
  • InvocationTargetException异常解析

    InvocationTargetException异常由Method.invoke(obj, args...)方法抛出。当被调用的方法的内部抛出了异常而没有被捕...

    xiangzhihong

扫码关注云+社区

领取腾讯云代金券