split 命令

split 命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。

命令用法

$ split [OPTION]... [FILE [PREFIX]]

将文件 FILE 分割为 PREFIXaaPREFIXab 等多个文件,其中:

  • 默认每 1000 行划分为一个文件,而且默认的前缀 PREFIXx;

  • 如果没有指定 FILE 或者 FILE-,则从标准输入读取。

常用可选参数

参数

说明

-a, --suffix-length=N

以长度 N 作为划分后的输出文件后缀,默认 N 为 2,即 aa, ab, ac

--additional-suffix=SUFFIX

给文件名添加一个 SUFFIX 的后缀

-b, --bytes=SIZE

以指定的 SIZE 字节大小来划分文件

-C, --line-bytes=SIZE

设置每一个输出文件最多有 SIZE 个字节大小

-d

使用以 0 开始的数字作为后缀而不使用字母后缀

--numeric-suffixes[=FROM]

-d 相同,不过允许你设置起始数字

-e, --elide-empty-files

配合 -n 使用,不生成空的输出文件

-l, --lines=NUMBER

以指定的行数或记录数 NUMBER 来划分文件

-n, --number=CHUNKS

以指定的块 CHUNKS 来划分并输出文件

-t, --separator=SEP

使用指定的 SEP 字符而不是新的一行作为行划分的分隔符

--verbose

显示运行状态信息

以上的 SIZE 参数是一个整数加上一个可选的单位(例如 10K10*1024); 单位可以是 K,M,G,T,P,E,Z,Y (以 1024 为阶)或者 KB,MB...(以 1000 为阶)

CHUNK 参数

参数

说明

N

根据输入文件的大小平均划分为 N 个文件

K/N

划分为 N 个文件,输出其中的第 K 个文件到 stdout 标准输出中

l/N

划分为 N 个文件,但不划分行或者记录

l/K/N

划分为 N 个文件,但不划分行或者记录,输出其中的第 K 个文件到 stdout 标准输出中

r/N

l 类似但使用 round robin distribution 算法来划分

r/K/N

和上面的参数类似但只输出第 K 个文件到标准输出

使用实例

Last updated