linux split 指令
功能說明:切割檔案。
語 法:split [--help][--version][-<行數>][-b <位元組>][-C <位元組>][-l <行數>][要切割的檔案][輸出檔案名] 【字首】
補充說明:split可将檔案切成較小的檔案,預設每1000行會切成一個小檔案。
參 數:
-<行數>或-l<行數> 指定每多少行就要切成一個小檔案。
-b<位元組> 指定每多少字就要切成一個小檔案。支援機關:m,k
-C<位元組> 與-b參數類似,但切割時盡量維持每行的完整性。(這個比較有用,特别是在分割大Sql檔案時,如果' you '
被分割成'yo 和u',那麼cat後運作還是錯誤。
--help 顯示幫助。
--version 顯示版本資訊。
[輸出檔案名] 設定切割後檔案的前置檔案名,split會自動在前置檔案名後再加上編号。
使用例子:
split -b 100m filename
1.檔案切割
檔案切割模式分為兩種:
文本檔案
二進制模式。
1.1文本模式
文本模式隻适用于文本檔案,用這種模式切割後的每個檔案都是可讀的。文本模式又分為兩種:
按最大檔案大小切割;
按文本行數切割。
1.1.1最大檔案大小切割
split -C 5k duanxin split
将文本檔案duanxin按每塊最大5k的大小進行切割,不打碎行。輸出檔案名類似splitaa, splitab……
split -b 5k duanxin split
每個分塊(當然,最後一個不保證)大小都是5k,可能會打碎行。
1.1.2 按文本行數切割
split -l 100 duanxin split
每個分塊100行,不考慮大小。日志分析時應該有用。
1.2 二進制模式
每個分塊(當然,最後一個不保證)大小都是5k,基本不可讀。任何類型檔案都可以用這種切割模式。
2.檔案合并
cat split* >newduanxin
不管用什麼方式切割,合并方法不變。
3.其它
split可以用-a選項指定輸出檔案名的長度。如
split -l 100 -a 3 duanxin split
則輸出檔案出類似于splitaaa,splitaab。不指定時預設為2。
用-b或-C指定分塊大小時,可用的機關有,b for 512bytes, k for 1Kbytes, m for 1 Megbytes.
split 參數:
-a, --suffix-length=N 指定輸出檔案名的字尾,預設為2個
-b, --bytes=SIZE 指定輸出檔案的位元組數
-C, --line-bytes=SIZE 每一輸出檔中,單行的最大 byte 數
-d, --numeric-suffixes 使用數字代替字母做字尾
-l, --lines=NUMBER NUMBER 值為每一輸出檔的列數大小
grep介紹 (1)grep 的一般格式為 grep [options] 基本正規表達式 [檔案]
字元串參數最好采用是雙引号括,一是以防被誤解為shell指令,二是可以用來查找多個單詞組成的字元串
-c:隻輸出比對行的記數
-i:不區分大小寫(隻适用于單個字元)
-h:查詢多個檔案時不顯示檔案名
-H:隻顯示檔案名
-l:查詢多檔案時隻輸出包含比對字元的檔案名
-n:隻顯示比對行及其行号
-s:不顯示不存在或無比對文本的錯誤資訊。
-v:顯示不包含比對文本的所有行。
(2)舉例說明:
grep ^[^210] myfile 比對myfile中以非2、1、0開頭的行
如何删除檔案指定行:
sed
“p” command prints the buffer (remember to use -n option with “p”)
“d” command is just opposite, its for deletion. ‘d’ will delete the pattern space buffer and immediately starts the next cycle.
:删除從第4行到第8行
$sed 4,8d thegeekstuff.txt
指令:split -l 300 large_file.txt new_file_prefix -d
系數不是字母而是數字(-d)
linux下檔案分割可以通過split指令來實作,可以指定按行數分割和安大小分割兩種模式。Linux下檔案合并可以通過cat指令來實作,非常簡單。
例如将一個BLM.txt檔案分成字首為 BLM_ 的1000個小檔案,字尾為系數形式,且字尾為4位數字形式
先利用
wc -l BLM.txt 讀出 BLM.txt 檔案一共有多少行
再利用 split 指令
split -l 2482 ../BLM/BLM.txt -d -a 4 BLM_
将 檔案 BLM.txt 分成若幹個小檔案,每個檔案2482行(-l 2482),檔案字首為BLM_ ,系數不是字母而是數字(-d),字尾系數為四位數(-a 4)