linux下文件分割可以通过split命令来实现,可以指定按行数分割和安大小分割两种模式。Linux下文件合并可以通过cat命令来实现,非常简单。

在Linux下用split进行文件分割:

模式一:指定分割后文件行数

对与txt文本文件,可以通过指定分割后文件的行数来进行文件分割。

命令:split -l 300 large_file.txt new_file_prefix

模式二:指定分割后文件大小

split -b 10m server.log waynelog

对二进制文件我们同样也可以按文件大小来分隔。

在Linux下用cat进行文件合并:

命令:cat small_files* > large_file

tag: linux 日志

分割

说明:

本文采用一个50M大小的日志文件进行测试。

日志文件名:log.txt.gz。

文件行数:208363

方法1:(split分割)

语法:split [-][-b

][-C

][-l

][要切割的文件][输出文件名]

# gunzip

log.txt.gz //一定要先解压,否则分割的文件是不能cat/zcat显示;

# wc -l

log.txt //计算一个文件的总行数;

208363 log.txt

# split -l 120000 log.txt newlog

//通过指定行数,将日志分割成两个文件;

# du -sh

*50M log.txt

29M newlogaa

22M newlogab

# file

* //分割后的文件与原文件属性一样

log.txt: ASCII text, with very long lines, with CRLF line

terminators

newlogaa: ASCII text, with very long lines, with CRLF line

terminators

newlogab: ASCII text, with very long lines, with CRLF line

terminators

# gzip newlogaa

newlogab //将分割后的文件进行压缩,以便传输

另一种方法,通过

方法2:(dd分割)

# gunzip

log.txt.gz //一定要先解压,否则分割的文件是不能cat/zcat显示;

#dd bs=20480 count=1500 if=log.txt

of=newlogaa //按大小分第一个文件

#dd bs=20480 count=1500 if=log.txt of=newlogab

skip=1500 //将大小之后的生成另一个文件#file

*

log.txt: ASCII text, with very long lines, with CRLF line

terminators

newlogaa: ASCII text, with very long lines, with CRLF line

terminators

newlogab: ASCII text, with very long lines, with CRLF line

terminators

分割没问题,但会出现同一行分到不同文件的情况,除非你以及日志分析系统可以“容忍”。

方法3:(head+tail 分割)

#gzip

log.txt.gz //如不解压缩,下面请用zcat。

#wc -l

log.txt //统计一个行数

208363 log.txt

# head -n `echo $((208363/2+1))` log.txt >

newloga.txt

//前x行重定向输出到一个文件中;

#tail –n `echo $((208363-208362/2-1))` log.txt

>newlogb.txt //后x行重定向输出到一个文件中;

#gzip newloga.txt

newlogb.txt //将两个文件进行压缩

方法4:(awk分割)

#gzip log.txt.gz#awk ‘{if (NR<120000) print $0}’

log.txt >newloga.txt#awk ‘{if

(NR>=120000) print $0}’ log.txt

>newlogb.txt

以上两个命令,都要遍历整个文件,所以考虑到效率,应使用合并成:

#awk ‘{if (NR<120000) print $0

>”newloga.txt”;if (NR>=120000) print

$0>”newlogb.txt”}’ log.txt

总结:

以上四种方法,除了dd之外的三种方式都可以很好的整行分割日志文件。进行分割时,应考虑在读一次文件的同时完成,如不然,按下面的方式分割:

Cat log.txt| head –12000 >newloga.txt

Cat log.txt | tail –23000 >newlogb.txt

如用此方法分割文件的后一部分,那么执行第二行命令文件时,前x行是白白读一遍的,执行的效率将很差,如文件过大,还可能出现内存不够的情况。

linux把大文件分成小文件,linux文件分割(将大的日志文件分割成小的)相关推荐

  1. linux 将文件分成两部分,linux 将大文件分成小文件

    最近lvm磁盘老报错,message文件大的惊人,想找个办法将这个文件分成若干的小文件来查看.无意中发现这个神器-----split 例如将一个message文件分成前缀为message_ 的100个 ...

  2. mysql 日志文件 自动_教你自动恢复MySQL数据库的日志文件

    如果MySQL服务器启用了二进制日志,你可以使用mysqlbinlog工具来恢复从指定的时间点开始 (例如,从你最后一次备份)直到现在或另一个指定的时间点的数据."mysqlbinlog:用 ...

  3. android分享文件分享结果_干货分享丨DM删除归档日志文件的多种方法

    上一期我们讲解了DM数据库归档日志的切换,本期我们讲解DM数据库归档日志文件的删除. 本章内容已在如下环境上测试: ①操作系统:中标麒麟7: ②数据库版本:达梦8: 相关关键字:DM数据库.归档日志文 ...

  4. 服务器日志文件可以删吗,C:\Windows\Logs\CBS 里面的日志文件能否删除?

    问题C:\Windows\Logs\CBS 里面的日志文件能否删除? C:\Windows\Logs\CBS 里面log文件有8个G了,而我现在C盘剩余空间为16MB , 请问这里面的日志能否删除,有 ...

  5. linux 用journalctl --vacuum-size=10M命令清理/var/log/journal目录下的日志文件

    su - root journalctl --vacuum-size=10M

  6. Linux下日志文件过大解决方案

    点击上方"方志朋",选择"设为星标" 做积极的人,而不是积极废人 很多Linux服务器里的应用程序都是无间断的输出日志,这对于服务器的硬盘是一个很大的考验. 通 ...

  7. 别人的Linux私房菜(19)认识与分析日志文件

    日志文件通常只有root可以读取,解决系统和网络方面的问题. /var/log/boot.log本次开机系统检测和启动硬件,和内核支持的相关功能的信息记录. /var/log/cron计划任务有没有被 ...

  8. Linux下自动分割Nginx日志文件(三)-----Logrotate

    logrotate是个十分有用的工具,它可以自动对日志进行截断(或轮循).压缩以及删除旧的日志文件.例如,你可以设置logrotate,让/var/log/foo日志文件每30天轮循,并删除超过6个月 ...

  9. Linux中查看日志文件的正确姿势,求你别tail走天下了!

    作为一个后端开发工程师,在Linux中查看查看文件内容是基本操作了.尤其是通常要分析日志文件排查问题,那么我们应该如何正确打开日志文件呢?对于我这种小菜鸡来说,第一反应就是 cat,tail,vi(或 ...

  10. linux关于日志文件介绍,Linux下重要日志文件介绍

    1./var/log/boot.log 该文件记录了系统在引导过程中发生的事件,就是说linux系统开机自检过程的信息显示 如图: 2./var/log/cron 该文件记录crontab守护进程cr ...

最新文章

  1. “含光”剑出,谁与争锋?阿里重磅发布首颗AI芯片含光800
  2. 网络编程学习笔记(辅助数据)
  3. js定义鼠标经过变换图片
  4. The world at your fingertips — 天涯明月刀幕后(后记)
  5. 苍溪师范94级计算机与文秘专业就业前景,文秘专业就业前景
  6. 《Git权威指南》笔记2
  7. python使用高阶函数实现_18.python高阶函数
  8. java游戏暂停弹出字体_小白写了个java的小游戏 想加个暂停的功能 无从下手 求大佬们帮...
  9. 链表在STM32中的应用
  10. swapLexOrder
  11. 555定时器回差电压计算公式_555定时器及其应用
  12. Android开发实战手把手教你实现一个折叠式布局
  13. [GIS原理] 10.1 空间统计描述(描述性分析、探索性数据分析)、空间自相关分析 - QQ图、权重矩阵、Moran'sl、G统计量
  14. 【京东笔试题】熊猫吃竹子,回溯
  15. 【博学谷学习记录】超强总结,用心分享 | 人工智能常用数据可视化库 matplotlib 入门(1)
  16. Unity3D人物模型精选——迷你卡通风格篇
  17. 什么是微信小程序什么是小程序微信小程序有什么优势
  18. 快手 (kuaishou.net) 2.8 发布
  19. 沈阳市委书记邀请深兰科技赴沈建厂,助力东北振兴
  20. windows2012自动锁定计算机,如何去除 windows server 2012 r2 自动锁定

热门文章

  1. mysql count 1_MySQL中count(1)和count(*)的区别是什么?
  2. 解读 《The Curious Case of Neural Text Degeneration 》 论文 笔记
  3. VR时代的媒介——虚拟的真实感就是真实
  4. android 计时器服务,启动时使用计时器/alarmclock,更新服务_android_开发99编程知识库...
  5. 【周六福利来了~】优才安卓公开课:程序员到架构师之路
  6. printf中连续输出i++,--i,++i,i--的值如何
  7. 一文了解肠-器官轴,肠好身体好
  8. 在windows和Ubuntu配置OpenXXX客户端
  9. python爬斗鱼直播房间名和主播名,Python爬虫获取斗鱼主播信息
  10. 阿里云ECS云服务器--安装部署MySQL(图文)