Linux 分割文件和數據

分割文件和數據工具

在一些狀況下,須要把文件分割成多個小文件,好比爲:提升可讀性,生成日誌,經過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能夠根據文本自身的特色進行分割,好比:是否存在某個單詞或文本內容均可以做爲分割的條件,這裏就不詳細說明了,有興趣能夠自行查看幫助。

相關文章
相關標籤/搜索