分割文件和數據工具
在一些狀況下,須要把文件分割成多個小文件,好比爲:提升可讀性,生成日誌,經過E--mail發送文件,如下會看到將文件分隔成不一樣大小的多種方法。測試
如下,咱們使用dd命令建立一個大小爲1G的文件來作測試文件。日誌
# dd if=/dev/zero of=/tmp/data.log bs=1024M count=1
建立好的data.log文件,咱們存儲在了/tmp目錄下。code
下面適用split命令對data.log文件進行分割。字符串
# split -b 100M data.log # ls data.log xaa xab xac xad xae xaf xag xah xai xaj xak
命令解析:上面的命令將data.log文件分割成多個文件,每一個文件大小爲100M。這些文件以xaa,xab,xac..的形式命名,這代表它們都有一個字母后綴。若是想用數字爲後綴,能夠另外使用-d參數。此外,使用-a參數能夠指定後綴長度。it
# split -b 100M -d -a 4 data.log # ls data.log x0000 x0001 x0002 x0003 x0004 x0005 x0006 x0007 x0008 x0009 x0010
爲分割後的文件指定文件名前綴方法
# split -b 100M data.log -d -a 4 data_ # ls data_0000 data_0001 data_0002 data_0003 data_0004 data_0005 data_0006 data_0007 data_0008 data_0009 data_0010 data.log
若是想經過行數來分割文件,可使用-l參數命名
# split -l 10 data.log
命令解析:上面命令把data.log文件分割成多個文件,每一個文件10行內容,由於咱們使用dd生成的文件,因此該文件內容是0行,你能夠本身建立一個50行數據的文件作測試(文件若是很大,分割的文件數會不少,這種狀況能夠把-l參數的值設置大些。)數據
另一個有趣的工具,csplit,它能依據指定的條件和字符串匹配對日誌文件進行分割。csp
csplit是split工具的一個變體。split只能根據文件大小與行數進行分割,而csplit能夠根據文本自身的特色進行分割,好比:是否存在某個單詞或文本內容均可以做爲分割的條件,這裏就不詳細說明了,有興趣能夠自行查看幫助。