split
split命令用于将文件拆分为多个文件。
将 FILE 分片输出为 PREFIXaa、PREFIXab ... PREFIXaz,默认按照 1000 行拆分,默认 PREFIX 是 x。其中可用的 OPTION 是:
-a/--sufix-length=2
: 指定后缀长度,默认 2--additional-suffix=SUFFIX
: 将额外的 SUFFIX 附加到文件名后-b/--bytes=SIZE
: 指定每个分片的字节 SIZE,可以是 K M G 结尾表示单位-d/--numeric-suffixes=0
: 后缀以数字开始而不是 aa 这样的字母-l/--lines=1000
: 设置每个分片文件的行数,默认 1000 行-n/--number=CHUNKS
: 指定要输出的文件数量-t/--separator=SEP
: 使用 SEP 代替换行符作为拆分分隔符,例如\0
表示 NUL 字符
拆分二进制文件
对于二进制文件的拆分主要使用 -b
来实现:
如果想要实现拆分为 5 个文件,其中每个文件大致相等:
Bash
split -n 5 -d largefile.gz part_
# 最终生成 part_00 part_01 part_02 part_03 part_04
# 他们大致相等,如果不能被 5 整除最后一个文件会小一些
拆分文本文件
对文本文件的拆分通常是通过换行符来实现的,可以通过 -t
来改变这一点但这个通常很复杂。最多的还是通过 -l
来指定要拆分的行数:
合并拆分后的文件
要想将这些文件合并可以使用 cat 命令来完成: