LInux 分割合併檔案

2022-03-14 20:28:14 字數 2068 閱讀 4727

有兩種方式,

第一種使用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切割是「非損耗」式的切割,並且支援從任意位置開始的任意大小的切割。 

要將生成的zz1、zz2、zz3、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!成功傳送! 

一、關於

在linux下,切割和合併檔案可以使用split和cat命令來實現。

二、檔案切割

檔案切割模式分為兩種:文字檔案和二進位制模式。

1、文字模式

文字模式只適用於文字檔案,用這種模式切割後的每個檔案都是可讀的。文字模式又分為兩種:按最大檔案大小切割和按文字行數切割。

1)按檔案大小切割

split -c 50k log.log splog

將文字檔案log.log按每塊最大50k的大小進行切割,不打碎行。輸出檔名類似splogaa, splogab…… 

2)按文字行數切割

split -l 100 log.log splog

每個分塊100行,不考慮大小。日誌分析時應該有用。

2、二進位制模式

split -b 50k log.log splog

每個分塊(當然,最後乙個不保證)大小都是50k,基本不可讀。任何型別檔案都可以用這種切割模式。

三、檔案合併

不管用什麼方式切割,合併方法不變。

cat splog* >newlog.log

四、補充說明

split 引數:

-a:指定輸出檔名的字尾長度,預設為2個(aa,ab...)

-d:指定輸出檔名的字尾用數字代替

-b:指定輸出檔案的最大位元組數,如1k,1m...

-c:指定每乙個輸出檔案中單行的最大位元組數

-l:指定每乙個輸出檔案的最大行數

從0開始,以ss為字首,每個分割大小1kb 

split -b 1k  -d  a.log ss

Linux下分割合併檔案

切割合併檔案在linux下用split和cat就可以完成。下面舉些例項進行說明。1.檔案切割 檔案切割模式分為兩種 文字檔案 二進位制模式。1.1文字模式 按最大檔案大小切割 按文字行數切割。1.1.1最大檔案大小切割 split c 5k duanxin split 將文字檔案duanxin按每塊...

Linux檔案分割和合併

linux下檔案分割可以通過split命令來實現,可以指定按行數分割和按大小分割兩種模式。linux下檔案合併可以通過cat命令來實現。模式一 指定分割後檔案行數 先 wc l large file.txt 得到檔案行數,然後執行分割命令 split l 300 large file.txt sma...

Linux下分割合併檔案

切割合併檔案在linux下用split和cat就可以完成。下面舉些例項進行說明。1.檔案切割 檔案切割模式分為兩種 文字檔案 二進位制模式。1.1文字模式 文字模式只適用於文字檔案,用這種模式切割後的每個檔案都是可讀的。文字模式又分為兩種 按最大檔案大小切割 按文字行數切割。1.1.1最大檔案大小切...