前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux下如何拆分大的日志文件?

Linux下如何拆分大的日志文件?

作者头像
编程珠玑
发布2019-10-21 15:07:48
4K0
发布2019-10-21 15:07:48
举报
文章被收录于专栏:编程珠玑编程珠玑

前言

没设置好日志大小最大值,导致日志文件过大,普通编辑器根本没法打开或者特别卡,怎么办?拆分呗。

如何拆分

split命令上场。

按照行数拆分

假设文件test.txt有n多行,每2行拆分为一个文件,使用-l参数即可:

代码语言:javascript
复制
$ split -l 2 test.txt 
$ ls -al
-rw-r--r-- 1 root root 32 Aug 31 16:55 test.txt
-rw-r--r-- 1 root root 20 Aug 31 16:55 xaa
-rw-r--r-- 1 root root 12 Aug 31 16:55 xab

仔细一看,拆分后的文件名难以描述啊。

能不能好好命名一下呢?

规范命名

使用-d参数可以用数字作为新的文件后缀:

代码语言:javascript
复制
$ split -l 2 test.txt -d
$ ls
test.txt  x00  x01  x02

还可以用-a指定后缀数字的长度(默认是2):

代码语言:javascript
复制
$ split -l 2 test.txt -d -a 4
$ ls
test.txt  x0000  x0001  x0002

不过开头的x实在看不顺序,我们还可以指定前缀,比如指定前缀为test:

代码语言:javascript
复制
$ split -l 2 test.txt -d -a 4 test
$ ls
test0000  test0001  test0002  test.txt

而且你还可以从指定数字下标开始,使用--numeric-suffixes,例如从0004开始:

代码语言:javascript
复制
$ split --numeric-suffixes=4 test.txt -a 4 -l 2
test.txt  x0004  x0005
按照大小拆分

使用-b参数来按照大小来拆分,单位为字节:

代码语言:javascript
复制
$ split -b 10 test.txt

当然还可以使用k(千字节),m(兆)。即:

代码语言:javascript
复制
$ split -b 10k test.txt
分割成指定数量文件

使用-n参数即可,比如无论大小,行数,拆分为3个文件:

代码语言:javascript
复制
$ split -n 4 test.txt
$ test.txt  xaa  xab  xac  xad

其他方法

当然了,打的日志文件可以不用那种创建临时文件打开的方式(如vim打开一个文件会创建一个临时文件),而可以使用类似more,tail等命令查看部分内容。更多查看方式可以参考《Linux常用命令-文本查看篇》。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 编程珠玑 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 如何拆分
    • 按照行数拆分
      • 规范命名
        • 按照大小拆分
          • 分割成指定数量文件
          • 其他方法
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档