split提供两种方式对文件进行切割:
  • 根据行数切割,通过-l参数指定需要切割的行数
  • 根据大小切割,通过-b参数指定需要切割的大小

1.1 根据行数切割

如下以一个3.4G大小的日志文件做切割演示,每一个文件按照50000行做切割,指定文件名为split-line,-d参数以数字的方式显示
#源文件大小
[root@VM_3_50_centos split]# ls -l -www.happylauliu.cn.gz -h
-rw-r--r-- root root .4G 1月 : -www.happylauliu.cn.gz #按行切割
[root@~]# split -l -d --verbose -www.happylauliu.cn.gz split-line
正在创建文件"split-line00"
正在创建文件"split-line01"
正在创建文件"split-line02"
正在创建文件"split-line03"
正在创建文件"split-line04"
正在创建文件"split-line05"
正在创建文件"split-line06"
正在创建文件"split-line07"
正在创建文件"split-line08"
正在创建文件"split-line09"
正在创建文件"split-line10"
...
正在创建文件"split-line9168"
正在创建文件"split-line9169"
正在创建文件"split-line9170"
正在创建文件"split-line9171" #查看切割文件行数确认
[root@VM_3_50_centos split]# wc -l split-line00
split-line00
[root@VM_3_50_centos split]# wc -l split-line01
split-line01
[root@VM_3_50_centos split]# wc -l split-line9170
split-line9170
[root@VM_3_50_centos split]# wc -l split-line9171
split-line9171 #查看文件大小
[root@VM_3_50_centos split]# ls -lh split-line0[-]
-rw-r--r-- root root 14M 1月 : split-line00
-rw-r--r-- root root 14M 1月 : split-line01
-rw-r--r-- root root 14M 1月 : split-line02
-rw-r--r-- root root 14M 1月 : split-line03
-rw-r--r-- root root 14M 1月 : split-line04
-rw-r--r-- root root 14M 1月 : split-line05
-rw-r--r-- root root 14M 1月 : split-line06
-rw-r--r-- root root 14M 1月 : split-line07
-rw-r--r-- root root 14M 1月 : split-line08
-rw-r--r-- root root 14M 1月 : split-line09
指定行数后会自动做切割,即达到5000行之后自动切割,通过-d参数文件名会自动以数字的方式命名,切割后,每个文件大小为14M,此时再对文件进行分析将会方便边界很多,同时文件数量也会很多,可以增加行数的方式进行切割,方便分析。

1.2 根据大小切割

除了按照行数切割之外,split还支持通过文件大小进行切割,通过指定-b参数指定文件大小进行切割,文件大小单位支持K, M, G, T, P, E, Z,如下以切割为500M演示文件切割过程
[root@~]# split -b 500M -d --verbose -www.happylauliu.cn.gz split-size
正在创建文件"split-size00"
正在创建文件"split-size01"
正在创建文件"split-size02"
正在创建文件"split-size03"
正在创建文件"split-size04"
正在创建文件"split-size05"
正在创建文件"split-size06" [root@VM_3_50_centos split]# ls -lh split-size0*
-rw-r--r-- root root 500M 1月 : split-size00
-rw-r--r-- root root 500M 1月 : split-size01
-rw-r--r-- root root 500M 1月 : split-size02
-rw-r--r-- root root 500M 1月 : split-size03
-rw-r--r-- root root 500M 1月 : split-size04
-rw-r--r-- root root 500M 1月 : split-size05
-rw-r--r-- root root 444M 1月 : split-size06

1.3 多文件合并

split是用户将大文件切割为多个小文件,如果需要将多个小文件合并为一个文件怎么处理呢?可以使用文件重定向方式实现,如下演示两个小文件合并为一个文件

[root@VM_3_50_centos split]# cat split-size01 split-size02 >two-file-merge

[root@VM_3_50_centos split]# ls -lh two-file-merge
-rw-r--r-- root root 1000M 1月 : two-file-merge

合并方式通过读取文件的方式+输出重定向,对于大文件一样会存在性能的问题,建议根据需要使用。

大文件切割(split)的更多相关文章

  1. 实战|Linux大文件切割

    一个执着于技术的公众号 日常工作中需要对日志文件进行分析,当日志文件过大时,Linux中使用vim.cat.grep.awk等这些工具对大文件日志进行分析将会成为梦魇,具体表现在: 执行速度缓慢,文件 ...

  2. Ajax+Java实现大文件切割上传

    技术体系:html5(formdata) + java + servlet3.0+maven + tomcat7 <!DOCTYPE html> <html> <head ...

  3. Linux大文件分割split和合并cat使用方法

    本文主要介绍linux下两个命令:split和cat.其中,相信大家都熟悉cat命令,一般用来查看一个文件的内容,但是它还其它的功能,比如这里要介绍的文件合并功能,它可把多个文件内容合并到一个文件中. ...

  4. Linux上大文件切割以及批量并发处理

    一.环境说明 某次项目需求中,在Linux上有批文本文件,文件文件都有几个G大,几千万行的数据.无论在Linux和Windows打开这么大的文件,基本上打开要卡半天,更别说编辑. 因此想到使用spli ...

  5. PHP搭建大文件切割分块上传功能

    背景 在网站开发中,文件上传是很常见的一个功能.相信很多人都会遇到这种情况,想传一个文件上去,然后网页提示"该文件过大".因为一般情况下,我们都需要对上传的文件大小做限制,防止出现 ...

  6. Ajax大文件切割传输

    文件上传服务器的大小是一定的,所以大文件可以切割成小文件,依次 传输,然后再拼接切割文件上传,用同步方式传输,为了防止异步传输 中多个块同时传输,文件拼接错误,导致文件损坏 前端页面 <!doc ...

  7. PHP搭建大文件切割分块上传功能示例

    转载:https://www.jb51.net/article/101931.htm 背景 在网站开发中,文件上传是很常见的一个功能.相信很多人都会遇到这种情况,想传一个文件上去,然后网页提示“该文件 ...

  8. 支持IE低版本的上传 大文件切割上传 断点续传 秒传

    1. http://files.cnblogs.com/files/blackice/UploadDemo.rar 此demo是使用的 swfupload 2.http://download.csdn ...

  9. 18 IO流(十五)——RandomAccessFile随机访问文件及使用它进行大文件切割的方法

    本文部分内容转自:https://blog.csdn.net/nightcurtis/article/details/51384126 1.RandomAccessFile特点 RandomAcces ...

随机推荐

  1. BFC 是什么东西?

    以下是本人理解的 BFC  和 官方文档BFC资料 . BFC 是页面元素的隐藏属性,全称 : Block Formatting Context 作用: 可以清除子元素浮动后不良效果在线效果地址:ht ...

  2. CDQ 入门

    推荐博客 :https://blog.csdn.net/wu_tongtong/article/details/78785836 https://www.cnblogs.com/mlystdcall/ ...

  3. 提高开发效率的一些ipython技巧

    目录 一.显示ipython快速参考 二.书签功能 三.查看帮助或信息 四.执行python程序 五.执行剪贴板中的代码 六.与操作系统交互 七.测试代码执行时间 八.性能分析 九.matplotli ...

  4. 【Java面试】Mybatis篇

    1.MyBatis编程步骤是什么样的? ① 创建SqlSessionFactory ② 通过SqlSessionFactory创建SqlSession ③ 通过sqlsession执行数据库操作 ④  ...

  5. linux 为动态分配的Virtualbox虚拟硬盘扩容

    如何为动态分配的Virtualbox虚拟硬盘扩容 查看虚拟硬盘是否是动态分配大小 打开虚拟机的设置界面,在左侧栏点击存储.在存储树下面选择你的虚拟硬盘.在右边可以看见虚拟硬盘的信息.在下面可以看见,我 ...

  6. vscode写python时的代码错误提醒和自动格式化

    python的代码错误检查通常用pep8.pylint和flake8,自动格式化代码通常用autopep8.yapf.black.这些工具均可以利用pip进行安装,这里介绍传统的利用pip.exe安装 ...

  7. Maven的scope属性作用域范围

    在POM 4中,<dependency>中还引入了<scope>,它主要管理依赖的部署.目前<scope>可以使用5个值: 1. compile,缺省值,适用于所有 ...

  8. Java 中的各种锁和 CAS + 面试题

    Java 中的各种锁和 CAS + 面试题 如果说快速理解多线程有什么捷径的话,那本文介绍的各种锁无疑是其中之一,它不但为我们开发多线程程序提供理论支持,还是面试中经常被问到的核心面试题之一.因此下面 ...

  9. js的new操作符深度解析

    引言 我们都知道new操作符在js中一般是用来创建一个构造函数的实例,它在创建实例具体做了什么,MDN文档是这么说的: 我一开始看到,完全没有任何的头绪和理解,到底什么意思,后面通过上网查阅了大量的资 ...

  10. Java:多线程概述与创建方式

    目录 Java:多线程概述与创建方式 进程和线程 并发与并行 多线程的优势 线程的创建和启动 继承Thread类 start()和run() 实现Runnable接口 实现Callable接口 创建方 ...