split命令可将大文件按行分割为小文件,使用-l指定行数、-d生成数字后缀,如split -l 1000 large.log part_ -d生成part_00、part_01等文件,便于并行处理,最后用cat合并。

在Linux中,split 命令是一个非常实用的工具,用于将大文件分割成多个小文件。当你需要处理超大文本文件,比如日志文件或数据导出文件时,按行分割可以让你更方便地并行处理或传输。
split 命令基本语法
split 的基本格式如下:
split [选项] [输入文件] [前缀]如果不指定输入文件,默认从标准输入读取。前缀是生成的小文件的名称前缀,不指定时默认为 xa、xb、xc 等。
按行数分割文件
使用 -l(lines)选项可以按指定行数分割文件。
例如,将文件 large.log 每 1000 行分割成一个新文件:
split -l 1000 large.log part_这会生成如下文件:
- part_aa
- part_ab
- part_ac
- ...
每个文件包含 1000 行(最后一个可能不足)。
自定义输出文件后缀
默认情况下,split 使用两个字母作为后缀(aa, ab, ...)。你可以改为使用数字后缀,更便于排序和识别。
使用 -d 选项启用数字后缀:
split -l 500 data.txt chunk_ -d生成的文件为:
- chunk_00
- chunk_01
- chunk_02
- ...
如果你希望后缀位数更多,可以加上 --numeric-suffixes= 和 --suffix-length=。
限制输出文件大小(可选)
虽然你主要关注按行分割,但也可以结合文件大小控制。注意:不能同时使用 -l 和 -b。
例如,按 100MB 分割:
split -b 100M bigfile.tar.gz piece_合并分割后的文件
分割后的文件可以通过 cat 命令还原:
cat part_* > restored_file.txt确保文件顺序正确,使用通配符通常能按字母顺序合并。
基本上就这些。split 命令简单高效,特别适合在 shell 脚本中批量处理大文件。按行分割能保证每块数据结构完整,避免某条记录被截断。实际使用时,根据行数或文件数量需求调整参数即可。










