有兩種方式,linux
第一種使用dd命令網絡
第二種使用split日誌
dd命令是linux下一個很是有用的磁盤命令。它能夠將指定大小的塊拷貝成一個文件,並在拷貝的同時執行指定的轉換。
UNIX已經提供了文件切割功能,能完成這個功能的UNIX命令就是DD。
要切割的大文件爲DGJD,共98336321字節,則:
dd if=dgjd of=zz1 bs=1 count=20000000
dd if=dgjd of=zz2 bs=1 count=20000000 skip=20000000
dd if=dgjd of=zz3 bs=1 count=20000000 skip=40000000
dd if=dgjd of=zz4 bs=1 count=20000000 skip=60000000
dd if=dgjd of=zz5 bs=1 count=18336321 skip=80000000
其中IF(INPUT FILENAME)是要切割的大文件名,OF(OUTPUT FILENAME)是切割後的子文件名,BS是指明以多少字節做爲一個切割記錄單位,COUNT是要切割的單位記錄數,SKIP是說明切割時的起點,單位一樣以BS設定值爲準。經過上述五條指令就將DGJD大文件切割成爲4個2千萬字節、1個18336321字節的子文件。要注意的是SKIP的值不能錯。 由此
也不難看出,DD切割是「非損耗」式的切割,而且支持從任意位置開始的任意大小的切割。
要將生成的ZZ一、ZZ二、ZZ三、ZZ4四個子文件組裝爲XDGJD,則:
dd if=zz1 of=xdgjd bs=1 count=20000000
dd if=zz2 of=xdgjd bs=1 count=20000000 seek=20000000
dd if=zz3 of=xdgjd bs=1 count=20000000 seek=40000000
dd if=zz4 of=xdgjd bs=1 count=20000000 seek=60000000
dd if=zz5 of=xdgjd bs=1 count=18336321 seek=80000000
其中SKIP參數改成SEEK參數,指明組裝的新大文件XDGJD每次的開始位置是從文件頭開始多少字節。若是缺省,則組裝從文件頭開始,顯然這不是咱們每次都但願的, 因此需用SEEK參數明確指出開始位置。經過以上5個指令,便可將5個子文件從新組裝爲一個大文件。將切割後生成的子文件從新用FTP傳送,結果有的可以順利傳送, 有的仍然致使網絡癱瘓,不怕,繼續切割,切成每一個一千萬字節,再傳,OK!成功傳送! ip
1、關於it
在linux下,切割和合並文件可使用split和cat命令來實現。日誌分析
2、文件切割
文件切割模式分爲兩種:文本文件和二進制模式。
一、文本模式
文本模式只適用於文本文件,用這種模式切割後的每一個文件都是可讀的。文本模式又分爲兩種:按最大文件大小切割和按文本行數切割。
1)按文件大小切割二進制
split -C 50k log.log splog方法
將文本文件log.log按每塊最大50k的大小進行切割,不打碎行。輸出文件名相似splogaa, splogab……
2)按文本行數切割文件
split -l 100 log.log splogco
每一個分塊100行,不考慮大小。日誌分析時應該有用。
二、二進制模式
split -b 50k log.log splog
每一個分塊(固然,最後一個不保證)大小都是50k,基本不可讀。任何類型文件均可以用這種切割模式。
3、文件合併
無論用什麼方式切割,合併方法不變。
cat splog* >newLog.log
4、補充說明
split 參數:
-a:指定輸出文件名的後綴長度,默認爲2個(aa,ab...)
-d:指定輸出文件名的後綴用數字代替
-b:指定輸出文件的最大字節數,如1k,1m...
-C:指定每個輸出文件中單行的最大字節數
-l:指定每個輸出文件的最大行數
從0開始,以ss爲前綴,每一個分割大小1kb
split -b 1k -d a.log ss