Linux下使用split拆分大文件 按大小或行数分割
用 split 按大小(-b)或行数(-l)分割文件,需合理选用 -d、-a、--numeric-suffixes 等参数控制命名,避免默认 xaa 后缀;-C 保证行完整,-n l/N 实现均衡分片,切前取表头、切后验证编号连续性与行数总和,再 cat 合并。
直接用 split 就能搞定,不用写脚本、不依赖额外工具。关键在选对参数组合,否则容易生成一堆难识别的 xaa、xab 文件,或者切得不均匀、最后一块太小。
按大小分割:-b 参数必须带单位
split -b 按字节切,但单位不能省——-b 100 是 100 字节,不是 100MB。split -b 100m 才是 100 兆(注意小写 m),k、g 同理。大写 M 也认,但部分老系统只支持小写,稳妥起见统一用小写。
- 切 50MB 的 SQL 导出文件:
split -b 50m users.sql users_part_ - 想让文件名带 4 位数字后缀(如
users_part_0000):split -b 50m -d -a 4 users.sql users_part_ - 如果某行超长(比如日志里一条 JSON 占几 MB),
-b会硬切,可能破坏单行完整性;此时该用-C(--line-bytes),它保证每行不被截断,但文件大小会略超设定值
按行数分割:-l 参数最常用但要注意边界
split -l 看似简单,实际最容易踩坑的是“最后一块太小”。比如 split -l 1000 big.log,若总行数是 10050,会生成 10 个满 1000 行的文件 + 1 个只有 50 行的 xaj。这在后续并行处理时可能出错。
- 强制平均分到 N 个文件(不管行数是否整除):
split -n l/3 big.log part_→ 拆成 3 份,行数尽量均衡 - 保留表头到每个分片(如 CSV):
split本身做不到,得先用head -n1提取表头,再用tail -n+2跳过表头后切,最后给每个分片加回去 - 避免默认字母后缀(
xaa)难排序:-d必加,再配合-a控制位数,例如split -l 5000 -d -a 3 data.csv chunk_生成chunk_000、chunk_001…
文件名控制:前缀、后缀、起始编号别漏设
没指定前缀时,默认输出 xaa、xab,这些名字既无意义又难排序。更麻烦的是,-d 默认从 0 开始编号,但有时你希望第一块叫 _001 而不是 _000,或从某个偏移开始续切。
Swoole linux版
Swoole 是一款面向生产环境的 PHP 异步网络通信引擎,专为 Linux 操作系统设计(同时支持 FreeBSD 和 macOS)。它采用纯 C 语言编写,作为 PHP 扩展运行后会接管程序控制权并进入事件循环。区别于传统 Web 框架,Swoole 使 PHP 开发者能够编写高性能的异步并发 TCP、UDP、WebSocket 服务,并支持协程与毫秒定时器,广泛应用于物联网、网络游戏等高性能场景。
下载
- 指定前缀:
split -b 100m -d access.log log_→log_00、log_01 - 控制后缀长度(避免
log_00000过长):-a 3→log_000到log_999 - 从指定数字开始编号:
--numeric-suffixes=100→ 第一个文件是log_100,适合追加切分场景 - 加扩展名(如
.log):--additional-suffix=.log→log_000.log,注意这个参数必须放在最后
验证与合并:别跳过这步
切完不验证,合并时才发现少一块或顺序错,就白忙了。尤其用 -d 时,文件名虽可排序,但若中间缺文件(比如磁盘满导致某块没写完),cat chunk_* > merged 会静默跳过缺失项,结果不完整。
- 检查是否连续:
ls chunk_* | head -n5; ls chunk_* | tail -n5看首尾编号 - 快速校验行数总和:
wc -l chunk_*最后一行的总计应 ≈ 原文件wc -l结果 - 合并命令很简单:
cat chunk_* > merged.log,但务必确保 shell 展开顺序正确——数字后缀天然有序,字母后缀(xaa、xab)也按字典序展开,一般没问题
真正麻烦的不是怎么切,而是切完之后怎么让下游工具(比如 Python 脚本或 Spark)能稳定识别、加载、不漏不重。所以命名规则和编号连续性比切法本身更重要,别省那几个参数。
如非特殊说明,本站内容均来自于网友自主分享,如有任何问题均请联系我们进行处理!
猜您喜欢
如何利用Python Django的Include标签拆分大型模板文件?
2026-06-04{%include%}能拆分模板但需注意变量作用域、路径规则(仅从templates根目录解析)和循环中重复渲染的性能问题,非万能解法。 直接说结论:用{%include%}能拆分模板,但必须注意变量作用域、路径解析规则和循环内重复渲染的性能陷阱——它不是“无脑切文件”的万能解药。 include标签怎么写才不报TemplateDoesNotExist Django的{%include%}默认只在...
如何在不使用正则表达式的情况下按关键词“shiftdate”分割字符串
2026-06-02本文介绍一种纯Python内置方法,无需导入re模块,即可将长字符串按指定关键词(如"shiftdate")切分为多个子串,并确保每个子串以该关键词开头。核心思路是利用str.split()配合字符串拼接,精准保留分隔符。 本文介绍一种纯python内置方法,无需导入`re`模块,即可将长字符串按指定关键词(如"shiftdate")切分为多个子串,并确保每个子串以该关键词开头。核心思路是利用`s...
电脑如何制作分屏对比视频_左右分割视频画面处理流程【入门】
2026-05-29用剪映电脑版或PremierePro可快速实现双视频并排分屏:剪映三步完成缩放拖拽,适合零基础;Pr有裁剪位移、蒙版、线性擦除三种精细方案,支持动画与精准对齐。 想把两个视频并排放在同一画面里做对比展示,比如教学演示、产品功能比对或双视角回放,不需要高价设备或复杂编程,用主流剪辑软件几分钟就能完成。 用剪映电脑版快速左右分屏 适合零基础用户,界面直观,无须调参数,三步出效果。 打开剪映电脑版→点击...
PDF怎么提取页面成新文件 拆分PDF文档特定页码教程
2026-05-29福昕PDF编辑器可精准提取指定页码(如第3、7–9、15页)生成单个新PDF;金舟支持批量处理多文档不连续页;Mac预览仅支持单范围导出;Python脚本适合高频自动化提取。 你需要从一份几十页的PDF里精准取出第3页、第7–9页和第15页,单独保存为新文件,而不是整本拆开或手动截图——这种需求在合同审核、发票归档、设计稿交付中每天都在发生。 用福昕PDF编辑器按页码范围提取 这是最稳妥的本地方案...
如何在Linux中修改终端的回滚行数 Linux保留更多历史输出的方法
2026-05-29终端回滚行数与shell命令历史是两套独立机制:前者由终端模拟器(如Konsole、GNOMETerminal、Alacritty)控制屏幕缓存,后者由HISTSIZE和HISTFILESIZE等shell变量管理;改回滚不影响history,改HISTSIZE不解决滚动到底问题。 终端里一滚就到底、history查不到早先命令——这两件事根本不是一回事,别混着调。前者是终端模拟器的“屏幕缓存”(...
Notion AI如何整理课堂录音笔记_时间戳标记与知识点拆分【技巧】
2026-05-28若课堂录音导入Notion后文本杂乱无序、缺乏时间定位、核心知识点难识别,需结合时间戳结构化处理并启用AI语义切分:一、插入带[00:12:03]格式时间码的转录稿,用AI提取带时间锚点的知识点;二、分时段截取音频逐段转写+AI提炼,提升颗粒度;三、用ToggleList构建可折叠时间轴笔记;四、人工标出“重点”“必考”等考点句,AI补全上下文;五、建数据库将时间戳结构化,实现多维筛选与知识管理。...
图像分割U-Net模型在Python中怎么解决边缘模糊_引入DiceLoss联合构建损失函数
2026-05-27DiceLoss能缓解U-Net边缘模糊,因其直接优化预测与真实掩码的重叠比例,增强对边界像素的梯度拉动;但需联合BCELoss、避免标签模糊、正确实现softdice及合理后处理才能见效。 为什么DiceLoss能缓解U-Net边缘模糊问题 U-Net输出的分割图边缘常出现概率值渐变(比如0.3→0.7),而非清晰的0/1跳变,本质是交叉熵损失torch.nn.CrossEntropyLoss对...
Python 3中如何将一列数据拆分为多列_利用str.split配合expand参数
2026-05-26str.split(expand=True)是最直接的字符串拆分方式,能一步生成多列DataFrame,自动补NaN处理不等长结果,但需注意列名、数据类型转换及异常格式排查。 str.split(expand=True)是最直接的拆分方式 当你的数据是pandas.Series,且每行字符串用固定分隔符(如逗号、空格、下划线)分隔时,str.split(expand=True)能一步生成多列Dat...
如何在Linux中修改终端的显示行数和列数 Linux调整窗口大小的方法
2026-05-26resize命令用于调整终端窗口大小并更新LINES和COLUMNS环境变量,支持-s指定行列数、-u输出shell赋值语句等选项,常用于SSH会话或窗口拖拽后同步尺寸。 Linux终端的显示行数和列数不是由窗口管理器或桌面环境直接控制的,而是由终端模拟器(如gnome-terminal、konsole、xfce4-terminal)向shell报告的尺寸决定的;shell通过stty和resiz...
Excel 公式:分列拆分单元格数据
2026-05-25大家好,今天为大家带来一种通过公式实现按指定字符对单元格内容进行分列的方法。 相信很多朋友都熟悉Excel自带的「数据→分列」功能,它能快速依据特定分隔符(如短横线、逗号等)将一列文本拆分为多列。但该方法属于手动操作,若需反复处理类似数据,效率较低,也难以实现自动化。 接下来,我们将借助函数组合,用纯公式的方式完成动态分列,无需每次点击菜单。 原始数据如下所示: 公式说明 本方案核心在于灵活运用T...
