Linux之split文件分割和合并方式

 更新时间:2024年04月11日 09:48:24   作者:CN-FuWei  
这篇文章主要介绍了Linux之split文件分割和合并方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、简介

Linux服务器普通的文件上传下载一般用 sz rz 就可以满足要求了,但是遇到大文件(超过4G)时就不好使了。

这是就可以通过将大文件分割为小文件传输,之后再进行文件合并即可。

二、用法

split命令格式:

split + 参数 + 要分割的文件 + 分割后子文件前缀

参数:

参数解释
-a后缀长度,例如-a3表示后缀长度为3
-l按照行数将文件分割成多个小文件
-b按照字节数将文件分割成多个小文件
-d指定后缀编码为数字,默认编码为字母

2.1、生成测试大文件

[root@docker][19:13:12][OK] ~ 
#head -c 10M < /dev/urandom >cuttingLog
[root@docker][19:13:15][OK] ~ 
#ll -h
total 10M
-rw-r--r--  1 root root  10M Nov 18 19:13 cuttingLog

2.2、分割

【1】每100行分成一个文件,后缀为数字,后缀长度为3位,前缀为log.

split -a3 -l 100 -d cuttingLog log.

[root@docker][19:13:17][OK] ~ 
#split -a3 -l 100 -d cuttingLog log.
[root@docker][19:15:30][OK] ~ 
#ll
total 21328
-rw-------. 1 root root     1640 Nov  7 23:43 anaconda-ks.cfg
-rw-r--r--  1 root root 10485760 Nov 18 19:13 cuttingLog
-rw-r--r--  1 root root    23325 Nov 18 19:15 log.000
-rw-r--r--  1 root root    22546 Nov 18 19:15 log.001
-rw-r--r--  1 root root    22925 Nov 18 19:15 log.002
-rw-r--r--  1 root root    27279 Nov 18 19:15 log.003
-rw-r--r--  1 root root    29060 Nov 18 19:15 log.004
-rw-r--r--  1 root root    22118 Nov 18 19:15 log.005
-rw-r--r--  1 root root    25845 Nov 18 19:15 log.006
-rw-r--r--  1 root root    25865 Nov 18 19:15 log.007
-rw-r--r--  1 root root    25474 Nov 18 19:15 log.008
-rw-r--r--  1 root root    22842 Nov 18 19:15 log.009
-rw-r--r--  1 root root    26265 Nov 18 19:15 log.010
...

【2】每100行分成一个文件,后缀为字母,后缀长度为3位,前缀为log. 

split -a3 -l 100 cuttingLog log.

[root@docker][19:16:58][OK] ~ 
#split -a3 -l 100 cuttingLog log.
[root@docker][19:17:01][OK] ~ 
#ll
total 21328
-rw-------. 1 root root     1640 Nov  7 23:43 anaconda-ks.cfg
-rw-r--r--  1 root root 10485760 Nov 18 19:13 cuttingLog
-rw-r--r--  1 root root    23325 Nov 18 19:17 log.aaa
-rw-r--r--  1 root root    22546 Nov 18 19:17 log.aab
-rw-r--r--  1 root root    22925 Nov 18 19:17 log.aac
-rw-r--r--  1 root root    27279 Nov 18 19:17 log.aad
-rw-r--r--  1 root root    29060 Nov 18 19:17 log.aae
-rw-r--r--  1 root root    22118 Nov 18 19:17 log.aaf
-rw-r--r--  1 root root    25845 Nov 18 19:17 log.aag
-rw-r--r--  1 root root    25865 Nov 18 19:17 log.aah
-rw-r--r--  1 root root    25474 Nov 18 19:17 log.aai
-rw-r--r--  1 root root    22842 Nov 18 19:17 log.aaj
...

【3】每2M分成一个文件,后缀为字数字,后缀长度为2位,前缀为log.

split -b 2M -d cuttingLog log.

[root@docker][19:20:26][OK] ~ 
#split -b 2M -d cuttingLog log.
[root@docker][19:20:29][OK] ~ 
#ll -h
total 21M
-rw-------. 1 root root 1.7K Nov  7 23:43 anaconda-ks.cfg
-rw-r--r--  1 root root  10M Nov 18 19:13 cuttingLog
-rw-r--r--  1 root root 2.0M Nov 18 19:20 log.00
-rw-r--r--  1 root root 2.0M Nov 18 19:20 log.01
-rw-r--r--  1 root root 2.0M Nov 18 19:20 log.02
-rw-r--r--  1 root root 2.0M Nov 18 19:20 log.03
-rw-r--r--  1 root root 2.0M Nov 18 19:20 log.04

注意:当分割后文件的数量大于后缀能表达的最大文件数时,会报错:split: output file suffixes exhausted

例如:split -a1 -b 2048 -d /test/logs.txt /test/logs/log.这个命令能分割出14个文件,但是使用-a1命令使得后缀只能表示10个文件,所以实际文件数量超出后缀能表达的文件数量,会报错。

2.3、合并

[root@docker][19:27:03][OK] ~ 
#cat log.* >cuttingLog_bak
[root@docker][19:27:30][OK] ~ 
#ll -h
total 31M
-rw-------. 1 root root 1.7K Nov  7 23:43 anaconda-ks.cfg
-rw-r--r--  1 root root  10M Nov 18 19:13 cuttingLog
-rw-r--r--  1 root root  10M Nov 18 19:27 cuttingLog_bak
-rw-r--r--  1 root root 2.0M Nov 18 19:20 log.00
-rw-r--r--  1 root root 2.0M Nov 18 19:20 log.01
-rw-r--r--  1 root root 2.0M Nov 18 19:20 log.02
-rw-r--r--  1 root root 2.0M Nov 18 19:20 log.03
-rw-r--r--  1 root root 2.0M Nov 18 19:20 log.04
[root@docker][19:27:32][OK] ~ 
#md5sum cuttingLog*
a583e4c5c9de6618b89aa9fc909cc3c8  cuttingLog
a583e4c5c9de6618b89aa9fc909cc3c8  cuttingLog_bak

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Centos/Ubuntu下安装nodejs教程

    Centos/Ubuntu下安装nodejs教程

    本篇文章主要介绍了Centos/Ubuntu下安装nodejs教程,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-04-04
  • CentOS 6.5 web服务器apache的安装与基本设置

    CentOS 6.5 web服务器apache的安装与基本设置

    这篇文章主要介绍了CentOS 6.5 web服务器apache的安装与基本设置,需要的朋友可以参考下
    2017-09-09
  • Linux系统CPU100%的处理步骤和方法

    Linux系统CPU100%的处理步骤和方法

    当 Linux 系统的 CPU 使用率达到 100% 时,系统可能会变得卡顿,响应速度减慢,甚至无法正常使用,这种情况通常由高负载的进程、资源不足或潜在的系统问题引起,以下是处理 CPU 100% 的具体步骤和方法,需要的朋友可以参考下
    2025-11-11
  • Linux输出输入重定向、tee命令使用及说明

    Linux输出输入重定向、tee命令使用及说明

    本文介绍了Linux中的输出重定向、输入重定向及tee命令,输出重定向包括覆盖、追加、管道方式;输入重定向包括基本输入重定向、多行文本重定向、字符串重定向,tee命令可将数据输出到屏幕和文件,支持追加、忽略中断信号等
    2026-04-04
  • 在linux系统下部署selenium爬虫程序介绍

    在linux系统下部署selenium爬虫程序介绍

    大家好,本篇文章主要讲的是在linux系统下部署selenium爬虫程序介绍,感兴趣的同学速来围观哦,记得收藏本篇文章方便下次浏览
    2021-11-11
  • centos 7系统下安装Jenkins的步骤详解

    centos 7系统下安装Jenkins的步骤详解

    Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,下面这篇文章主要给大家介绍了关于在centos 7系统下安装Jenkins的步骤,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-08-08
  • Linux CentOS 7.0中java安装与配置环境变量的步骤详解

    Linux CentOS 7.0中java安装与配置环境变量的步骤详解

    这篇文章主要给大家分享介绍了关于Linux CentOS 7.0中java安装与配置环境变量的相关资料,文中通过示例代码将安装与配置的过程介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧
    2018-07-07
  • linux把php升级到5.6的实操方法

    linux把php升级到5.6的实操方法

    在本篇文章里小编给大家整理的是关于linux下如何把php升级到5.6的相关知识点,需要的朋友们学习下。
    2019-11-11
  • Linux下一键启停Python服务脚本的超实用方法

    Linux下一键启停Python服务脚本的超实用方法

    这篇文章主要为大家详细介绍了Linux下一键启停Python服务脚本的超实用方法,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-12-12
  • Linux环境下查看日志文件命令详解

    Linux环境下查看日志文件命令详解

    大家好,本篇文章主要讲的是Linux环境下查看日志文件命令详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12

最新评论