查看: 220|回覆: 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

主題

2091

回帖

1萬

積分

琼殿精英

金币
10576
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2011-10-11
發表於 6 天前 | 顯示全部樓層
感谢分享!刚好最近在处理一个几百M的日志文件,正愁不知道怎么切割呢,这个命令太实用了!

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

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

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

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

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

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

在本版发帖返回顶部