split命令可以将一个大文件分割成很多个小文件,有时需要将文件分割成更小的片段,比如为提高可读性,生成日志等。
-b:值为每一输出档案的大小,单位为 byte。
-C:每一输出档中,单行的最大 byte 数。
-d:使用数字作为后缀。
-l:值为每一输出档的列数大小。
生成一个大小为100KB的测试文件:
该命令创建了一个1M大小的文件sun.txt,其中参数解释:
if 代表输入文件。如果不指定if,默认就会从stdin中读取输入。
of 代表输出文件。如果不指定of,默认就会将stdout作为默认输出。
bs 代表字节为单位的块大小。
count 代表被复制的块数。
/dev/zero 是一个字符设备,会不断返回0值字节(\0)。
使用split命令将上面创建的date.file文件分割成大小为10KB的小文件:
# split-b 10k date.file
# ls date.file
xaa xab xac xad xae xaf xag xah xai xaj
文件被分割成多个带有字母的后缀文件,如果想用数字后缀可使用-d参数,同时可以使用-a length来指定后缀的长度:
# split -b 10k date.file-d -a 3
# ls date.file
x000 x001 x002 x003 x004 x005 x006 x007 x008 x009
为分割后的文件指定文件名的前缀:
# split -b 10k date.file -d -a 3 split_file
# ls date.file
split_file000 split_file001 split_file002 split_file003 split_file004 split_file005 split_file006 split_file007 split_file008 split_file009
使用-l选项根据文件的行数来分割文件,例如把文件分割成每个包含10行的小文件:
split -l 10 date.file