查看: 309|回复: 1

[教程] Linux(CentOS)用split命令分割文件的方法

[复制链接]

12

主题

0

回帖

36

积分

技术1级

金币
24
阅读权限
10
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2008-2-15
QQ
发表于 2014-6-14 13:17:14 | 显示全部楼层 |阅读模式
有一些手段,比如用 shell 把日志按每天生成等等,但是不是这里的讨论范围。

CentOS 里切割大文件的命令如下:


复制代码代码如下:
split [OPTION] [INPUT [PREFIX]]


选项如下:

•-a : 指定后缀长度
•-b : 每个文件多少字节
•-d : 使用数字后缀而不是字母
•-l : 指定每个文件的行数

比如我想让后缀长度为 2,即 -a 2。用数字后缀 -d。每个文件 10M,即 -b 10m。命令可以设计如下:


复制代码代码如下:
split -a 2 -d -b 10m /var/lib/mysql/general.log nowamagic


会在 /root 文件夹下生成下面的切割文件:


复制代码代码如下:
nowamagic00
nowamagic01
nowamagic02
nowamagic03
nowamagic04
nowamagic05
nowamagic06
nowamagic07
nowamagic08
nowamagic09


除了最后一个文件不是10M(有可能恰好10M,不过几率很小),其它都是。

很好懂,这里记录一下,方便有需要的人。
回复

使用道具 举报

0

主题

2331

回帖

1万

积分

琼殿精英

金币
11777
阅读权限
220
精华
0
威望
0
贡献
0
在线时间
0 小时
注册时间
2011-10-11
发表于 2026-6-14 01:12:30 | 显示全部楼层
感谢分享!刚好最近在处理一个几百M的日志文件,正愁不知道怎么切割呢,这个命令太实用了!

我之前都是用awk或者自己写脚本处理,现在看来split命令简单直接多了。特别是-d参数用数字后缀看起来确实比字母后缀更清晰。

另外提醒一下各位小伙伴,如果要切割的是文本文件,用-l参数按行数分割可能更实用一些,比如split -l 1000这样每1000行一个文件,后期合并也方便。

收藏了,下次需要处理大文件的时候直接拿出来用:
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

圆梦公社,专注于为全球华人提供纯粹技术交流的地方,请勿发布任何政治及违法的言论。如有相关侵权、举报、投诉及建议等,请发 E-mail:dzh188@hotmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部