split切割文件命令詳解

1. split介紹

split命令可以將一個大文件分割成很多個小文件,有時需要將文件分割成更小的片段,比如爲提高可讀性,生成日誌等。

2. split參數

-a, --suffix-length=N   use suffixes of length N (default 2)   #輸出文件後綴長度,默認爲:2
-b, --bytes=SIZE   put SIZE bytes per output file       #按照文件大小分割文件,單位:字節
一個字節 = 8位二進制數(1byte == 8bit)

ASCII碼:一個英文字母(不分大小寫)佔一個字節的空間,一箇中文漢字佔兩個字節的空間
UTF-8編碼:一個英文字符等於一個字節,一箇中文(含繁體,及中文標點)等於三個字節
Unicode編碼:一個英文(含標點)等於兩個字節,一箇中文(含繁體,及中文標點)等於兩個字節

-d, --numeric-suffixes  use numeric suffixes instead of alphabetic  #添加數字後綴(因爲默認添加的是字母后綴,所有要想加數字需要自己添加)
-l, --lines=NUMBER      put NUMBER lines per output file   #按照行數分割文件,默認1000行一個文件
--verbose  print a diagnostic just before each output file is opened  #打印運行狀態信息
--help     display this help and exit          查看說明文檔
--version  output version information and exit 查看版本信息

3. split實戰

3.2 默認切割

默認情況下,split 命令使用非常簡單的命名方案。文件塊將被命名爲 xaa、xab、xac 等,並且,大概地,如果你將足夠大的文件分割,你甚至可能會得到名爲 xza 和 xzz 的塊。
除非你要求,否則該命令將無任何反饋地運行。

$ split bigfile

3.2 --verbose 創建文件塊時看到反饋

$ split –-verbose bigfile
creating file 'xaa'
creating file 'xab'
creating file 'xac'

3.3 原始文件分割並命名爲 bigfile.aa、bigfile.ab

$ split –-verbose bigfile bigfile.
creating file 'bigfile.aa'
creating file 'bigfile.ab'
creating file 'bigfile.ac'

請注意,上述命令中顯示的前綴的末尾會添加一個點。否則,文件將是 bigfileaa 之類的名稱,而不是 bigfile.aa。
請注意,split 命令不會刪除你的原始文件,只是創建了文件塊。

3.4 -b 指定文件塊的大小

$ split -b100M bigfile

文件大小可以是 KB、MB,GB,最大可以是 YB!只需使 K、M、G、T、P、E、Z 和 Y 這些合適的字母。

3.5 -l選項根據文件的行數來分割文件

每個文件將有 1000 行

$ split --verbose -l1000 logfile log.
creating file 'log.aa'
creating file 'log.ab'
creating file 'log.ac'
creating file 'log.ad'
creating file 'log.ae'
creating file 'log.af'
creating file 'log.ag'
creating file 'log.ah'
creating file 'log.ai'
creating file 'log.aj'

3.6 cat合併與原文件無差別

$ split --verbose -b50K zip zip.
creating file 'zip.aa'
creating file 'zip.ab'
creating file 'zip.ac'
creating file 'zip.ad'
creating file 'zip.ae'
$ cat zip.a? > zip.new
$ diff zip zip.new
$                    <== 無輸出 = 無差別

3.7 -d用數字後綴,同時可以使用-a length來指定後綴的長度:

$ split -b 10k date.file -d -a 3
$ ls
date.file  x000  x001  x002  x003  x004  x005  x006  x007  x008  x009

爲分割後的文件指定文件名的前綴:

$ split -b 10k date.file -d -a 3 split_file
$ ls
date.file  split_file000  split_file001  split_file002  split_file003  split_file004  split_file005  split_file006  split_file007  split_file008  split_file009
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章