场景

线上出了问题,我需要去查找log来定位问题,但是由于线上数据量庞大,这些log文件每过一个小时就会自动回滚一次,尽管如此,有的log文件依然达到了五六g以上的大小。

对于这种巨大的log文件,常用的一些文本编辑器诸如EditPlus、Notepad++就不用说了,打开几百m的文件都会很卡,上g的直接程序崩溃。虽然UltraEdit对于大文件的读取会友好一些,但打开这种五六g的文件时也会陷入长时间的无响应状态。

后来我又得知了一个看log神器——glogg,打开五六g的大文件速度很快,但是有个问题,就是只能读取文件,不能编辑文件。毕竟我不只是要查看log,有时候还要对这些有用的log信息进行编辑。最后还是决定先把大文件分割成数个小文件,再用UltraEdit来查看这些文件。

使用split命令分割大文件

在Linux下,切割和合并文件可以使用split和cat命令来实现。

在Windows下,安装Git Bash也可以使用split和cat命令。

分割文件的命令是split,通过输入split --help可以查询帮助信息。假设现在有个6GB大小的文件test.log,这里简单介绍下几种分割的方式:

按大小分割文件

split -b 1000000000 test.log

-b参数表示按字节大小进行分割,在数字后边要指定被分割的文件名。这里在输入文件名时有个小技巧,可以直接把该文件拖动到cmd窗口中,会自动输入该文件的具体目录。这里的文件还可以使用通配符,比如split -b 1000000000 *。

这个命令表示按1000000000byte的大小进行分割,近似于1GB,大概是953MB的大小。对于这个6GB大小的文件test.log,会被分割成6个小文件。这些小文件的命名是有规律的:xaa、xab、xac、xad、xae、xaf。如果你分割了非常多的小文件,当文件名到了xyz之后,会变成xzaaa、xzaab、xzaac、xzaad……所以不用担心小文件过多而导致文件重名什么的。

当然,上边的这种写法不够人性化,我们可以使用其他的单位来指定分割的大小:k、m。k表示KB,m表示MB。

split -b 100k test.log表示将test.log按照100KB的大小进行分割。

split -b 100m test.log表示将test.log按照100MB的大小进行分割。

按照所有行数加起来的最大字节数进行分割

split -C 100k test.log

-C参数表示按照所有行数加起来的最大字节数进行分割,同样可以使用k或者m作为单位,其实效果和上边的-b差不多,只是在切割时将尽量维持每行的完整性。

按照行数进行分割

split -l 1000 test.log

split -1000 test.log

-l参数表示按照行数进行分割,即一个小文件中最多有多少行,-l number可以缩写成-number,上边的命令表示按照1000行一个小文件进行分割。

注意点

这三种分割的方式不能混合使用,如下:

split -l 3000 -C 100k *

会报错split: cannot split in more than one way。

cmd 文本文件分割_通过split命令分割大文件相关推荐

  1. linux中split分割文件打开方式,Linux系统下使用split命令分割大文件 (转载)

    [小蜗牛闲情之作 ] 我想给一个朋友传一个大视频,有几百M,尝试多种传输办法失败后,最后想到的是把视频切开一片片"邮递"过去给他,让它自己组装起来吧. [root@pps publ ...

  2. linux文件分割命令性能,Linux系统下使用split命令分割大文件 (转载)

    [小蜗牛闲情之作 ] 我想给一个朋友传一个大视频,有几百M,尝试多种传输办法失败后,最后想到的是把视频切开一片片"邮递"过去给他,让它自己组装起来吧. [root@pps publ ...

  3. linux清除文件后df还是满的,Linux系统下用du和df命令清除大文件的方法

    很多用户表示,Linux系统中发现/home目录下剩余空间不足的时候,可以使用du和df命令来对找到大文件,并且对它们进行删除,从而腾出足够的空间.但是,如何用du和df命令清除大文件呢?下面,U大侠 ...

  4. linux清除文件后df还是满的,Linux系统下如何用du和df命令清除大文件?

    Linux系统中如果发现/home目录下剩余空间不足,可以使用du和df命令来对找到大文件,并且对它们进行删除,从而腾出足够的空间.那么如何用du和df命令清除大文件呢? 具体方法: 步骤1. du ...

  5. java按照空格分割,Java用split实现分割含一个或多个空格的字符串

    Java用split实现分割含一个或多个空格的字符串 发布时间:2020-11-02 16:28:29 来源:亿速云 阅读:66 作者:Leah 本篇文章给大家分享的是有关Java用split实现分割 ...

  6. mysql数据库水平分割_数据库的水平分割和垂直分割

    在数据库操作中,我们常常会听说这两个词语:水平分割和垂直分割.那么到底什么是数据库的水平分割,什么是数据库的垂直分割呢?本文我们就来介绍一下这部分内容. 1.水平分割: 按记录进分分割,不同的记录可以 ...

  7. python 文件分割 按大小_python处理分隔大文件

    4个.sql格式的文件,2G大小,直接插入mysql数据中,文件太大了,导入不进去. 太大的文件用python处理也很麻烦,处理不了,只能先分隔成小文件处理. 文件中数据格式:其中values里面的数 ...

  8. mysql cmd grep_通过 mysqlbinlog 和 grep 命令定位binlog文件中指定操作

    1.binlog日志基本知识 MySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗 ...

  9. java 用于xcopy复制_利用xcopy命令实现本地文件复制到远程服务器的方法

    利用xcopy命令实现本地文件复制到远程服务器的方法 更新时间:2013年05月08日 10:52:36   作者: 把本地文件复制到远程服务器:用Xcopy命令可以做到,具体实现如下,感兴趣的朋友可 ...

  10. 大文件分片上传前端框架_基于Node.js的大文件分片上传

    基于Node.js的大文件分片上传 我们在做文件上传的时候,如果文件过大,可能会导致请求超时的情况.所以,在遇到需要对大文件进行上传的时候,就需要对文件进行分片上传的操作.同时如果文件过大,在网络不佳 ...

最新文章

  1. Kinect深度图像滤波
  2. 7 centos 时钟跟物理机同步_通信网中的同步技术
  3. 如何使用Angular Generator创建新的Component
  4. 2018年计算机CPU纳米制程,AMD发大招,推出7纳米制程CPU与GPU
  5. harmonyos鸿蒙,HarmonyOS鸿蒙入门篇
  6. java超市进销存系统_基于SSM的超市进销存管理系统、基于JavaWeb的超市进销存管理系统...
  7. avm.js跨端框架全介绍
  8. 【学术】 一个博士的经历(小木虫精华帖,留着细细体会!)
  9. 在Chrome中使用非应用商店安装的扩展程序
  10. [misc]T型知识实践结构的力量
  11. XJTUSE专业课与实验指南(已经开源)
  12. JavaScript:隐藏、显示div
  13. 直播 | 骞云科技DevOps实践
  14. jQuery的简单了解和学习(1) jquery简介+语法+选择器+事件
  15. AR试妆魔镜操作演示
  16. PIC单片机学习—USART串口
  17. COM劫持 BypassUAC
  18. 家具建材行业电商平台解决方案
  19. 苹果iBook笔记本曝设计缺陷 使用中突然断电
  20. 作为一个自动化本科生到底应该学些什么(讲讲个人经历和感受)

热门文章

  1. 《Unix传奇》:众神的创世记
  2. avast:中兴手机预装恶意软件 嵌入固件底层
  3. VB2010的串口能正常接收数据,但无法发送数值大于127的数据
  4. 排序之插入排序(二分法)
  5. opencv2/opencv.hpp”:No such file or directory 或找不到属性管理器
  6. 古代汉语(王力版)笔记 绪论
  7. 【软件工程】重要知识点
  8. matlab实现卷积操作
  9. GPG软件签名与验证
  10. mysql 汉字拼音怎么获得_mysql汉字拼音取法