1. 程式人生 > 其它 >LINUX切割檔案【SPLIT命令詳解】

LINUX切割檔案【SPLIT命令詳解】

linux檢視幫助

[tomcat-nohup]$ split --help
用法:split [選項]... [輸入 [字首]]
將輸入內容拆分為固定大小的分片並輸出到"字首aa"、"字首ab",...;
預設以 1000 行為拆分單位,預設字首為"x"。如果不指定檔案,或
者檔案為"-",則從標準輸入讀取資料。

長選項必須使用的引數對於短選項時也是必需使用的。
  -a, --suffix-length=N    指定字尾長度為N (預設為2)
  -b, --bytes=大小        指定每個輸出檔案的位元組大小
  -C, --line-bytes=大小    指定每個輸出檔案裡最大行位元組大小
  -d, --numeric-suffixes     使用數字字尾代替字母后綴
  -l, --lines=數值        指定每個輸出檔案有多少行
      --verbose        在每個輸出檔案開啟前輸出檔案特徵
      --help        顯示此幫助資訊並退出
      --version        顯示版本資訊並退出

SIZE 可以是一個可選的整數,後面跟著以下單位中的一個:
KB 1000,K 1024,MB 1000*1000,M 1024*1024,還有 G、T、P、E、Z、Y。

使用例項:

1.(按檔案大小分割)比如我想將一個log檔案切割成每個1M大小,字尾是2位數字結尾的子檔案,子檔案以child開頭,則

split -a 2 -d -b 1M app.log.10 child
-a 2  字尾是2位
-d  字尾是數字
-b 1M 每個檔案最大1M
tomcat-bankgw-app.log.10 child     需要切割的檔案是tomcat-bankgw-app.log.10,生成的子檔案字首是 "child"

結果如下:

2.(按行數做分割)將一個檔案分割成每1萬行一個檔案,字尾是2位,子檔案以child開頭

split -a 2 -l 10000 app.log child
-a 2 字尾是2位 -l 10000 每10000行一個檔案 tomcat-bankgw-app.log.10 child 需要切割的檔案是tomcat-bankgw-app.log.10,生成的子檔案字首是 "child"

 切割結果:

注意:此次結尾是字母排序,而不是數字了。這是預設的方式。

------------Mac的split命令---------

$ split --help
split: illegal option -- -
usage: split [-a sufflen] [-b byte_count] [-l line_count] [-p pattern]
             [file [prefix]]

mac的這個和linux的相比,最大的區別就是不能以數字作為字尾了。其他基本一致

[tomcat-nohup]$ split --help
用法:split [選項]... [輸入 [字首]]
將輸入內容拆分為固定大小的分片並輸出到"字首aa"、"字首ab",...;
預設以 1000 行為拆分單位,預設字首為"x"。如果不指定檔案,或
者檔案為"-",則從標準輸入讀取資料。

長選項必須使用的引數對於短選項時也是必需使用的。
  -a, --suffix-length=N    指定字尾長度為N (預設為2)
  -b, --bytes=大小        指定每個輸出檔案的位元組大小
  -C, --line-bytes=大小    指定每個輸出檔案裡最大行位元組大小
  -d, --numeric-suffixes     使用數字字尾代替字母后綴
  -l, --lines=數值        指定每個輸出檔案有多少行
      --verbose        在每個輸出檔案開啟前輸出檔案特徵
      --help        顯示此幫助資訊並退出
      --version        顯示版本資訊並退出

SIZE 可以是一個可選的整數,後面跟著以下單位中的一個:
KB 1000,K 1024,MB 1000*1000,M 1024*1024,還有 G、T、P、E、Z、Y。

使用例項:

1.(按檔案大小分割)比如我想將一個log檔案切割成每個1M大小,字尾是2位數字結尾的子檔案,子檔案以child開頭,則

split -a 2 -d -b 1M app.log.10 child
-a 2  字尾是2位
-d  字尾是數字
-b 1M 每個檔案最大1M
tomcat-bankgw-app.log.10 child     需要切割的檔案是tomcat-bankgw-app.log.10,生成的子檔案字首是 "child"

結果如下:

2.(按行數做分割)將一個檔案分割成每1萬行一個檔案,字尾是2位,子檔案以child開頭

split -a 2 -l 10000 app.log child
-a 2  字尾是2位
-l 10000  每10000行一個檔案
tomcat-bankgw-app.log.10 child     需要切割的檔案是tomcat-bankgw-app.log.10,生成的子檔案字首是 "child"

 切割結果:

注意:此次結尾是字母排序,而不是數字了。這是預設的方式。

------------Mac的split命令---------

$ split --help
split: illegal option -- -
usage: split [-a sufflen] [-b byte_count] [-l line_count] [-p pattern]
             [file [prefix]]

mac的這個和linux的相比,最大的區別就是不能以數字作為字尾了。其他基本一致