split 命令详解
更新时间:2026-08-28。本文是「一个命令一个文档」系列,属于文本处理命令族(见文本处理命令族)。几个 G 的日志传不动?先切成小块。
split 把一个大文件切成多个小文件,便于传输、并行处理或绕过大小限制。合并时只需 cat 回来。
一、按行数分割:-l
bash
split -l 10000 huge.log part_ # 每 10000 行一个,命名 part_aa/ab/...
split -l 5000 -d big.txt chunk_ # -d 用数字后缀 chunk_00/01
-l按行数切(日志最常用,保证每块是完整行)。默认后缀是aa/ab(字母),-d改数字后缀更好排序。
二、按大小分割:-b
bash
split -b 100M bigfile.iso part_ # 每 100MB 一块
split -b 1G data.tar.gz chunk_
-b按字节大小切,支持K/M/G单位。适合大二进制/压缩包分块传输(如邮件附件限制)。注意-b可能在行中间切断(文本场景优先用-l)。
三、合并回去
bash
cat part_* > huge.log.restored # 按顺序 cat 回来(字母/数字后缀保证顺序)分割是可逆的:cat 所有分块(按命名顺序)即还原。务必保留命名顺序,乱序拼接会损坏内容。
四、实战:大日志分块处理
bash
split -l 50000 access.log seg_
# 然后并行 grep 每个 seg_ 块,最后汇总超大日志单机 grep 慢,先
split成多块并行处理再汇总,是常见加速手法。也可配合xargs -P并行。
相关命令
一句话总结
split = 分割大文件:-l 按行数(日志首选,保证整行)、-b 按大小(K/M/G,可能断行);默认字母后缀 aa,-d 改数字更好排序;合并用 cat part_* > restored(顺序不能乱);大日志分块后并行处理再汇总是加速手法。