split 命令用于将文件平均分割为多个小文件,多用于日志查看。
先下载一个测试文件 split_test
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| $ split split_test $ ll
-rw-r--r-- 1 wxnacy staff 216320 Jun 25 14:52 split_test -rw-r--r-- 1 wxnacy staff 20000 Jun 25 14:54 xaa -rw-r--r-- 1 wxnacy staff 20000 Jun 25 14:54 xab -rw-r--r-- 1 wxnacy staff 20000 Jun 25 14:54 xac -rw-r--r-- 1 wxnacy staff 20000 Jun 25 14:54 xad -rw-r--r-- 1 wxnacy staff 20000 Jun 25 14:54 xae -rw-r--r-- 1 wxnacy staff 20000 Jun 25 14:54 xaf -rw-r--r-- 1 wxnacy staff 20000 Jun 25 14:54 xag -rw-r--r-- 1 wxnacy staff 20000 Jun 25 14:54 xah -rw-r--r-- 1 wxnacy staff 20000 Jun 25 14:54 xai -rw-r--r-- 1 wxnacy staff 20000 Jun 25 14:54 xaj -rw-r--r-- 1 wxnacy staff 16320 Jun 25 14:54 xak
|
默认 split
会将文件均匀的分割成多个小文件,文件名以 x
开头,剩余字符按字符表排序。
语法
1
| $ split [OPTION]... [FILE [PREFIX]]
|
split
命令有多个参数可供调用
-b
指定输出文件的大小,单位为 byte。
-d
使用数字作为后缀。
-l
指定输出文件的行数
-a
指定后缀的长度
分割出 100k 的文件
-b
默认单位为 byte,可以指定分割单位,如 K,M,G,T,P,E,Z,Y
1 2 3 4 5 6 7
| $ split -b 100k split_test $ ll total 856 -rw-r--r-- 1 wxnacy staff 216320 Jun 25 14:52 split_test -rw-r--r-- 1 wxnacy staff 102400 Jun 25 14:59 xaa -rw-r--r-- 1 wxnacy staff 102400 Jun 25 14:59 xab -rw-r--r-- 1 wxnacy staff 11520 Jun 25 14:59 xac
|
使用数字为后缀,并指定长度
1 2 3 4 5 6 7
| $ split -b 100k -d -a 4 split_test $ ll total 424 -rw-rw-r-- 1 vagrant vagrant 216320 Jun 25 07:12 split_test -rw-rw-r-- 1 vagrant vagrant 102400 Jun 25 07:13 x0000 -rw-rw-r-- 1 vagrant vagrant 102400 Jun 25 07:13 x0001 -rw-rw-r-- 1 vagrant vagrant 11520 Jun 25 07:13 x0002
|
指定文件前缀
1 2 3 4 5 6 7
| $ split -b 100k -d -a 4 split_test split. $ ll total 424 -rw-rw-r-- 1 vagrant vagrant 216320 Jun 25 07:12 split_test -rw-rw-r-- 1 vagrant vagrant 102400 Jun 25 07:15 split.0000 -rw-rw-r-- 1 vagrant vagrant 102400 Jun 25 07:15 split.0001 -rw-rw-r-- 1 vagrant vagrant 11520 Jun 25 07:15 split.0002
|
指定行数分割文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| $ split -l 1000 split_test $ ll total 428 -rw-rw-r-- 1 vagrant vagrant 216320 Jun 25 07:12 split_test -rw-rw-r-- 1 vagrant vagrant 20000 Jun 25 07:20 xaa -rw-rw-r-- 1 vagrant vagrant 20000 Jun 25 07:20 xab -rw-rw-r-- 1 vagrant vagrant 20000 Jun 25 07:20 xac -rw-rw-r-- 1 vagrant vagrant 20000 Jun 25 07:20 xad -rw-rw-r-- 1 vagrant vagrant 20000 Jun 25 07:20 xae -rw-rw-r-- 1 vagrant vagrant 20000 Jun 25 07:20 xaf -rw-rw-r-- 1 vagrant vagrant 20000 Jun 25 07:20 xag -rw-rw-r-- 1 vagrant vagrant 20000 Jun 25 07:20 xah -rw-rw-r-- 1 vagrant vagrant 20000 Jun 25 07:20 xai -rw-rw-r-- 1 vagrant vagrant 20000 Jun 25 07:20 xaj -rw-rw-r-- 1 vagrant vagrant 16320 Jun 25 07:20 xak
$ wc -l xaa 1000 xaa
|