split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。
选项
-b:值为每一个输出档案的大小,单位为byte
-C:每一输出档中,单行的最大byte数
-d: 使用数字作为后缀
-l: 值为每一输出档的列数大小
实例
生成一个大小为100KB的测试文件
[root@SZB-L0032013 ~]# dd if=/dev/zero bs=100M count=1 of=date.file
1+0 records in
1+0 records out
104857600 bytes (105 MB) copied, 0.151958 s, 690 MB/s
使用split命令将上面创建的date.file文件分割成大小为10M的小文件
[root@SZB-L0032013 split]# split -b 10M date.file
[root@SZB-L0032013 split]# ls
date.file xaa xab xac xad xae xaf xag xah xai xaj
文件被分割成多个带有字母的后缀文件,如果想用数字后缀可使用-d参数
同时可以使用-a length来指定后缀的长度
[root@SZB-L0032013 split]# split -b 10M date.file -d -a 3
[root@SZB-L0032013 split]# ls
date.file x000 x001 x002 x003 x004 x005 x006 x007 x008 x009
为分割后的文件指定文件名的前缀
[root@SZB-L0032013 split]# split -b 10M date.file -d -a 3 split_file
[root@SZB-L0032013 split]# ls
date.file split_file001 split_file003 split_file005 split_file007 split_file009
split_file000 split_file002 split_file004 split_file006 split_file008
使用-l选项根据文件的行数来分割文件,例如把文件分割成每个包含50的小文件
[root@SZB-L0032013 split]# cat test |wc -l
100
[root@SZB-L0032013 split]# split -l 50 test
[root@SZB-L0032013 split]# ll
total 12
-rw-r--r-- 1 root root 292 Mar 15 15:46 test
-rw-r--r-- 1 root root 141 Mar 15 15:47 xaa
-rw-r--r-- 1 root root 151 Mar 15 15:47 xab
[root@SZB-L0032013 split]# cat xaa |wc -l
50