前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 使用split命令分割文件

Linux 使用split命令分割文件

作者头像
smartsi
发布2019-08-07 14:19:47
2.8K0
发布2019-08-07 14:19:47
举报
文章被收录于专栏:SmartSiSmartSi

1. 概述

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

2. 语法:

代码语言:javascript
复制
split [OPTION]... [INPUT [PREFIX]]

3. 选项

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

4. 实例

4.1 按行分割
代码语言:javascript
复制
xiaosi@ying:~/test/input$ split -6 a.txt

或者

代码语言:javascript
复制
xiaosi@ying:~/test/input$ split -l 6 a.txt

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

代码语言:javascript
复制
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 按文件大小分割
代码语言:javascript
复制
xiaosi@ying:~/test/input$ split -b50M b.txt

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

代码语言:javascript
复制
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 来指定后缀的长度:

代码语言:javascript
复制
xiaosi@ying:~/test/input$ split -b50M b.txt -d -a 3

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

代码语言:javascript
复制
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 指定输出文件名前缀
代码语言:javascript
复制
xiaosi@ying:~/test/input$ split -b50M b.txt split_

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

代码语言:javascript
复制
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
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 概述
  • 2. 语法:
  • 3. 选项
  • 4. 实例
    • 4.1 按行分割
      • 4.2 按文件大小分割
        • 4.3 修改后缀
          • 4.4 指定输出文件名前缀
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档