split [OPTION] [INPUT [PREFIX]]
[功能]
将文件分割成多片。
[描述]
将输入文件'INPUT'分割,输出固定大小的文件片段"PREFIXaa,PREFIXab,...",这里,默认的大小为1000行,并且PREFIX的默认值为'x',如果没有指定输入文件(INPUT文件),或者输入为-,那么会从标准输入读取。
选项如下:
-a, --suffix-length=N
使用的后缀的长度,默认长度为2,例如'aa','ab'等后缀,其长度就是2。
-b, --bytes=SIZE
指定每个输出文件片段的大小。
-C, --line-bytes=SIZE
指定每个输出文件片段的最大行字节(???)。
-d, --numeric-suffixes
指定输出文件片段后缀为数字而不是默认的字母形式。
-l, --lines=NUMBER
指定每个输出文件片段的行数。
以上,指定的大小"SIZE"可以用如下的方式指定单位:后缀为b表示512字节,后缀为k表示1K,后缀为m表示1M。
[举例]
*将文件rootfs.tgz分割成15m每份:
# split -b 15m rootfs.tgz
这里,会将文件rootfs.tgz分割成多个片段,每个15m,最后一个根据文件大小可能小于15m。单位15m中的'm'必须小写。另外,不加m单位的话则为字节。
具体如下:
(1)分割之前:
#ls -l
-rw-r--r-- 1 quietheart quietheart 35055284 01-06 10:49 rootfs.tgz
(2)分割之后:
# du -shc *
34M rootfs.tgz
16M xaa
16M xab
3.5M xac
67M 总计
# ls -l
总计 68572
-rw-r--r-- 1 quietheart quietheart 35055284 01-06 10:49 rootfs.tgz
-rw-r--r-- 1 root root 15728640 01-06 10:57 xaa
-rw-r--r-- 1 root root 15728640 01-06 10:57 xab
-rw-r--r-- 1 root root 3598004 01-06 10:57 xac
这里,"du"命令大小有误差,使用ls -l可看到15728640实际就是15M。
(3)将文件合并:
#cat xaa xab xac >merge.tgz
这样会将分割的文件合并还原。
*将文件rootfs.tgz分割成15m每份,前缀名称为rootfs:
# split -b 15m rootfs.tgz rootfs
这样,生成的文件片段名称不是默认的'x'为前缀而是以指定的'rootfs'为前缀了。
分割之后,文件如下:
# ls
rootfsaa rootfsab rootfsac rootfs.tgz
*将文件rootfs.tgz分割成15m每份,后缀名称为数字:
# split -b 15m rootfs.tgz -d
这样,分割之后,每个文件片段的后缀不是默认的字母而是数字了,前缀(默认为'x')也可以自己指定的。运行之后如下:
# ls
rootfs.tgz x00 x01 x02
这里,x00,x01,x02就是文件片段。
[其他]
可以使用cat命令将分割的文件片段合并。
例如:
#cat xaa xab xac >merge.tgz
这样会将分割的文件片段xaa,xab,xac合并还原成merge.tgz。
分享到:
相关推荐
主要介绍了java split()使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
主要介绍了java的split方法使用示例,需要的朋友可以参考下
split_dos
mysql 5.* 的版本现在没有split 函数,但有些地方会用,在这里就简单记录一下
主要介绍了String split方法实现过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
本文详细介绍了vbscript中split函数的用法,有关split函数的一些实例,vbscript中split函数的语法介绍,有需要的朋友参考下
之前曾有一篇POST是关于用CTE实现Split,这种方法已经比传统的方法高效了。今天我们就这个方法与CLR实现的Split做比较。在CLR实现Split函数的确很简单,dotnet framework本身就有这个function了。