前言
split 命令:将指定的文件切割小的文件
csplit命令:按照指定的格式将文件分块为”xx00”、”xx01”…并输出。同时每个分块文件的字节数也将被输出到标准输出。
1.使用方法
split :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| -d 使用数字而不是字母作为切割后的小文件的后缀; -v 显示详细的处理信息 -b <字节> 每个分割文件的大小 -C <数字> 指定输出到每一个文件的每一行的大小,数字后缀可以是 b: 512(blocks) K: 1024(kibiBytes) KB: 1000(kiloBytes) M: 1024*1024(mebiBytes) MB: 1000*1000(megaBytes) G: 1024*1024*1024(gibiBytes) GB: 1000*1000*1000(gibaBytes) T, P, E, Z, Y -l<行数> 指定切割的行数作为切割文件的单位; --help 显示帮助信息 --version 显示版本信息
|
csplit:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| 用法:csplit [选项]... 文件 格式... 按照指定的格式将文件分块为"xx00"、"xx01"...并输出。 同时每个分块文件的字节数也将被输出到标准输出。
长选项必须使用的参数对于短选项时也是必需使用的。 -b, --suffix-format=格式 使用sprintf 格式代替%02d -f, --prefix=前缀 使用指定前缀代替"xx" -k, --keep-files 不移除错误的输出文件 -n, --digits=数位 使用指定的进制数位代替二进制 -s, --quiet, --silent 不显示输出文件的尺寸计数 -z, --elide-empty-files 删除空的输出文件 --help 显示此帮助信息并退出 --version 显示版本信息并退出
如果文件为"-",则读取标准输入。每个"格式"可以是:
整数 不包括指定的行,并以其为文件分块边界 /表达式/[偏移量] 不包括匹配到的行,并以其为文件分块边界 %表达式%[偏移量] 预先跳过匹配的行数,以其为文件分块边界 {整数} 将之前指定的模式重复指定的次数 {*} 将之前指定的模式重复尽可能多的次数。
一个行的偏移量需要在正整数值之后声明"+" 或 "-"。
|
2. 例子
split
例1
1 2 3 4 5 6 7 8
| #将文件分割成,4M的小块,并用数字代替字母 [zhangy@BlackGhost awksed]$ split -d -b 4m google.tar.gz
#分割文件 取文件前300行开始分割 [zhangy@BlackGhost awksed]$ split -l 300 b.txt
#合并文件 [zhangy@BlackGhost awksed]$ cat x* > google_bak.tar.gz
|
例2
1 2 3 4 5 6 7 8 9
| [root@pps public_rw]# split -b 20m RevolutionOS.rmvb RevOS_part_ [root@pps public_rw]# ls -lh 总计 552M -rwx------ 1 hoho hoho 276M 2005-09-09 RevolutionOS.rmvb -rw-r--r-- 1 root root 20M 03-19 17:59 RevOS_part_aa -rw-r--r-- 1 root root 20M 03-19 17:59 RevOS_part_ab ............. -rw-r--r-- 1 root root 20M 03-19 18:00 RevOS_part_am -rw-r--r-- 1 root root 16M 03-19 18:00 RevOS_part_an
|
例3
1
| # split -l 200 test.txt test_part
|
例4
1 2 3 4 5 6
| # -a 指定后缀的长度(默认为2位) # -d 使用数组作为后缀(默认为字母)
split -l 10700000 dataset -d -a 1 dataset_
#将dataset文件分割成每个文件数据量107w的小文件,小文件以dataset_前缀+一个数字命名;如dataset_1,dataset_2,dataset_3等
|
csplit
例1
1 2 3 4 5 6 7
| [root@localhost www]# csplit test.rb 5 #分割文件 148 34
[root@localhost www]# ll |grep xx #查看分割文件 -rw-r--r-- 1 root root 16 05-04 16:58 xx00 -rw-r--r-- 1 root root 166 05-04 16:58 xx01
|