有两种方式,

第一种使用dd命令

第二种使用split

dd命令是linux下一个非常有用的磁盘命令。它可以将指定大小的块拷贝成一个文件,并在拷贝的同时执行指定的转换。
UNIX已经提供了文件切割功能,能完成这个功能的UNIX命令就是DD。 
要切割的大文件为DGJD,共98336321字节,则: 
dd if=dgjd of=zz1 bs=1 count=20000000 
dd if=dgjd of=zz2 bs=1 count=20000000 skip=20000000 
dd if=dgjd of=zz3 bs=1 count=20000000 skip=40000000 
dd if=dgjd of=zz4 bs=1 count=20000000 skip=60000000 
dd if=dgjd of=zz5 bs=1 count=18336321 skip=80000000

其中IF(INPUT FILENAME)是要切割的大文件名,OF(OUTPUT FILENAME)是切割后的子文件名,BS是指明以多少字节作为一个切割记录单位,COUNT是要切割的单位记录数,SKIP是说明切割时的起点,单位同样以BS设定值为准。通过上述五条指令就将DGJD大文件切割成为4个2千万字节、1个18336321字节的子文件。要注意的是SKIP的值不能错。 由此 
也不难看出,DD切割是“非损耗”式的切割,并且支持从任意位置开始的任意大小的切割。

要将生成的ZZ1、ZZ2、ZZ3、ZZ4四个子文件组装为XDGJD,则: 
dd if=zz1 of=xdgjd bs=1 count=20000000 
dd if=zz2 of=xdgjd bs=1 count=20000000 seek=20000000 
dd if=zz3 of=xdgjd bs=1 count=20000000 seek=40000000 
dd if=zz4 of=xdgjd bs=1 count=20000000 seek=60000000 
dd if=zz5 of=xdgjd bs=1 count=18336321 seek=80000000

其中SKIP参数改为SEEK参数,指明组装的新大文件XDGJD每次的开始位置是从文件头开始多少字节。如果缺省,则组装从文件头开始,显然这不是我们每次都希望的, 所以需用SEEK参数明确指出开始位置。通过以上5个指令,即可将5个子文件重新组装为一个大文件。将切割后生成的子文件重新用FTP传送,结果有的能够顺利传送, 有的仍然导致网络瘫痪,不怕,继续切割,切成每个一千万字节,再传,OK!成功传送!

一、关于

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

二、文件切割
        文件切割模式分为两种:文本文件和二进制模式。
    1、文本模式
            文本模式只适用于文本文件,用这种模式切割后的每个文件都是可读的。文本模式又分为两种:按最大文件大小切割和按文本行数切割。
        1)按文件大小切割

split -C 50k log.log splog

将文本文件log.log按每块最大50k的大小进行切割,不打碎行。输出文件名类似splogaa, splogab…… 
        2)按文本行数切割

split -l 100 log.log splog

每个分块100行,不考虑大小。日志分析时应该有用。
    2、二进制模式

split -b 50k log.log splog

每个分块(当然,最后一个不保证)大小都是50k,基本不可读。任何类型文件都可以用这种切割模式。

三、文件合并
    不管用什么方式切割,合并方法不变。

cat splog* >newLog.log

四、补充说明
    split 参数:
        -a:指定输出文件名的后缀长度,默认为2个(aa,ab...)

-d:指定输出文件名的后缀用数字代替

-b:指定输出文件的最大字节数,如1k,1m...
        -C:指定每一个输出文件中单行的最大字节数
        -l:指定每一个输出文件的最大行数

从0开始,以ss为前缀,每个分割大小1kb

split -b 1k  -d  a.log ss

LInux 分割合并文件的更多相关文章

  1. Linux下分割、合并文件——dd和cat

    功能说明:读取,转换并输出数据. 语 法:dd [bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>][ibs=& ...

  2. Linux中split大文件分割和cat合并文件

    当需要将较大的数据上传到服务器,或从服务器下载较大的日志文件时,往往会因为网络或其它原因而导致传输中断而不得不重新传输.这种情况下,可以先将大文件分割成小文件后分批传输,传完后再合并文件. 1.分割 ...

  3. Linux命令(十二) 分割文件 split 合并文件 join

    一.分割文件 split 命令介绍 当处理文件时,有时需要将文件做分割处理,split 命令用于分割文件,可以分割文本文件,按指定的行数分割,每个分割后的文件都包含相同的行数.split 可以分割非文 ...

  4. linux下使用split 来分割大文件

    linux下使用split 来分割大文件 2010-07-27 15:46:27|  分类: 技术文稿 |  标签:split  分割  linux   |字号 订阅   平常都是使用ssh来进行远程 ...

  5. Linux下的文件切割和文件合并

    linux下文件分割可以通过split命令来实现,可以指定按行数分割和按大小分割两种模式.Linux下文件合并可以通过cat命令来实现. 在Linux下用split进行文件分割: ①:指定分割后文件行 ...

  6. Linux合并文件、去除重复行的命令

    Linux合并文件命令: awk '{printf("%s\n",$0)}' YQ-*101?.txt >  123.txt   linux去除重复行命令:cat YQ-10 ...

  7. Linux下 split 划分文件 和 cat 合并文件

    split 命令 split 命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等. 选项 -b:值为每一输出档案的大小,单位为 byte. -C:每一 ...

  8. Linux培训教程 linux系统下分割大文件的方法

    在linux中分割大文件,比如一个5gb日志文件,需要把它分成多个小文件,分割后以利于普通的文本编辑器读取. 有时,需要传输20gb的大文件,Linux培训 教程件到另一台服务器,也需要把它分割成多个 ...

  9. 文件分割合并DOS版

    这个从163邮箱里翻出来的程序,2004年的修改日期,放这另存一下. 当时拿了一本C++的书来学,学了一阵就琢磨着做一个东东,然后就想起一个以前印象深刻的软件,叫做笨笨狗分割器. 当时主要还是靠3.5 ...

随机推荐

  1. Go语言标准包之用io包模拟curl

    最后一个书上的标准包,但真正学习的路才开始... package main import ( "bytes" "fmt" "os" &quo ...

  2. 解决获取图片实际尺寸(宽高)的bug

    需求:获取图片的宽高其实是为了预先做好排版样式布局做准备. 可以利用图片onload事件监听获取图片的宽高属性值.在IE9以下版本只能使用图片的width与height属性,HTMl5中新加入了nat ...

  3. LoadRunner 执行单句SQL语句

    LoadRunner 执行单句SQL语句 Action() { int NumRows=0; int i=1; //建立数据库连接 lr_db_connect("StepName=Datab ...

  4. HDU 5114 扩展欧几里得

    题目大意:给你两个球的坐标 他们都往(1, 1)这个方向以相同的速度走,问你他们在哪个位置碰撞. 思路:这种题目需要把x方向和y方向分开来算周期,两个不同周期需要用扩展欧几里得来求第一次相遇. #in ...

  5. Python进程间通信:Queue

    Python进程间通信Queue 1.Queue使用方法: Queue.qsize():返回当前队列包含的消息数量: Queue.empty():如果队列为空,返回True,反之False : Que ...

  6. Eclipse中快速 打出 main方法的签名

    有时,我们创建一个空白类,需要打出main方法 public static void main(String [] args){ } 在Eclipse先敲main字符,然后按住ALT+/,再按回车即可 ...

  7. KMP字符串匹配模板代码

    洛谷的模板传送门 #include<cstdio> #include<cstring> #include<cstdlib> #include<cmath> ...

  8. 【BZOJ 1150】 1150: [CTSC2007]数据备份Backup (贪心+优先队列+双向链表)

    1150: [CTSC2007]数据备份Backup Description 你在一家 IT 公司为大型写字楼或办公楼(offices)的计算机数据做备份.然而数据备份的工作是枯燥乏味 的,因此你想设 ...

  9. noip2012开车旅行 题解

    题目大意: 给出n个排成一行的城市,每个城市有一个不同的海拔.定义两个城市间的距离等于他们的高度差的绝对值,且绝对值相等的时候海拔低的距离近.有两个人轮流开车,从左往右走.A每次都选最近的,B每次都选 ...

  10. [BZOJ 2668] 交换棋子

    Link: BZOJ 2668 传送门 Solution: 重点在于对于每条转移路径:首尾算一次,中间节点算两次 可以一点拆三点,将原流量拆成入流量和出流量 但其实也可以就拆两点,分前后是否是一首尾点 ...