split - 按大小或行数分割文件

split 用于把一个输入文件分成多个较小文件。默认每 1000 行生成一个输出文件,默认前缀为 x

常用参数

  • -a N--suffix-length=N:指定输出文件后缀长度。
  • -b SIZE--bytes=SIZE:按字节大小分割。
  • -C SIZE--line-bytes=SIZE:控制每个输出文件的最大大小,并尽量在行边界分割。
  • -d--numeric-suffixes:使用数字后缀。
  • -l N--lines=N:每个输出文件包含 N 行。

按大小分割

# 创建一个 100 KiB 的示例文件
dd if=/dev/zero of=data.file bs=100K count=1
 
# 每 10 KiB 分割一个文件
split -b 10K data.file
 
# 使用三位数字后缀
split -b 10K -d -a 3 data.file
 
# 指定输出文件前缀
split -b 10K -d -a 3 data.file part_

最后一个命令会生成 part_000part_001 等文件。

按行数分割

# 每 10 行生成一个文件
split -l 10 filename part_

分割前应确认目标目录空间和输出前缀,避免与已有文件名冲突。需要按内容模式分割时,可参阅 csplit

参考资料