split命令可以將一個(gè)大文件分割成很多個(gè)小文件,有時(shí)需要將文件分割成更小的片段,比如為提高可讀性,生成日志等。
-b:值為每一輸出檔案的大小,單位為 byte。
-C:每一輸出檔中,單行的最大 byte 數(shù)。
-d:使用數(shù)字作為后綴。
-l:值為每一輸出檔的列數(shù)大小。
生成一個(gè)大小為100KB的測(cè)試文件:
該命令創(chuàng)建了一個(gè)1M大小的文件sun.txt,其中參數(shù)解釋:
if?代表輸入文件。如果不指定if,默認(rèn)就會(huì)從stdin中讀取輸入。
of?代表輸出文件。如果不指定of,默認(rèn)就會(huì)將stdout作為默認(rèn)輸出。
bs?代表字節(jié)為單位的塊大小。
count?代表被復(fù)制的塊數(shù)。
/dev/zero?是一個(gè)字符設(shè)備,會(huì)不斷返回0值字節(jié)(\0)。
使用split命令將上面創(chuàng)建的date.file文件分割成大小為10KB的小文件:
# split-b 10k date.file?
#?ls?date.file?
xaa? xab? xac? xad? xae? xaf? xag? xah? xai? xaj
文件被分割成多個(gè)帶有字母的后綴文件,如果想用數(shù)字后綴可使用-d參數(shù),同時(shí)可以使用-a length來指定后綴的長(zhǎng)度:
# 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選項(xiàng)根據(jù)文件的行數(shù)來分割文件,例如把文件分割成每個(gè)包含10行的小文件:
split -l 10 date.file