首页/系统/Linux 运维命令速查/csplit 按模式切分文件
本包目录(613 条)
文件与目录76 条
文本处理77 条
网络命令82 条进程与作业69 条磁盘与文件系统51 条用户与权限44 条日志与排查40 条systemd 与服务42 条包管理34 条性能与监控48 条定时任务与计划50 条

csplit 按模式切分文件

按正则行或行号把大文件切成多段:日志按会话标记切段、按固定行数分卷都行;-f/-b 控制命名。

Linux 运维命令速查系统更新于 2026-10-12
用途按内容模式/行号切分文件
语法csplit [选项] 文件 模式...
模式/正则/ 从匹配行前切开;行号 按行数切

常用示例

常用示例
csplit -f part- -b '%02d.log' access.log '/^== /' '{*}'   # 每个 == 开头的行起一段
csplit -z -n 3 big.txt 10000 '{*}'                        # 每 1 万行一段,-z 不产出空文件
csplit 不会删除原文件;模式完全不匹配时退出码非 0(已切出的段仍在),set -e 的脚本要单独处理。

易错点

  • 默认输出 xx00、xx01 命名——批量场景务必 -f/-b 定制,否则和别的任务混在一起
  • 模式行本身归属新段开头,验收切段结果时先 head 检查边界

数据来源与参考

  • man 1 csplit(GNU coreutils 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌