工作原理
将该文件分割成多个大小1k的文件,方法如下
[root@shaofeng ~]# split -b 1k data.file
[root@shaofeng ~]# ls
-rw-r--r-- 1 root root 1024 12月 8 13:35 xaa
-rw-r--r-- 1 root root 1024 12月 8 13:35 xab
-rw-r--r-- 1 root root 1024 12月 8 13:35 xac
-rw-r--r-- 1 root root 1024 12月 8 13:35 xad
-rw-r--r-- 1 root root 1024 12月 8 13:35 xae
-rw-r--r-- 1 root root 664 12月 8 13:35 xaf
如果想以数字为后缀,可以另外使用-d参数。此外,使用-a length可以指定后缀长度:
[root@shaofeng data]# split -b 1k data.file -d -a 4
[root@shaofeng data]# ls -all
总用量 40
drwxr-xr-x 2 root root 4096 12月 8 13:41 .
dr-xr-x---. 12 root root 4096 12月 8 13:40 ..
-rw-r--r-- 1 root root 5784 12月 8 13:35 data.file
-rw-r--r-- 1 root root 1024 12月 8 13:41 x0000
-rw-r--r-- 1 root root 1024 12月 8 13:41 x0001
-rw-r--r-- 1 root root 1024 12月 8 13:41 x0002
-rw-r--r-- 1 root root 1024 12月 8 13:41 x0003
-rw-r--r-- 1 root root 1024 12月 8 13:41 x0004
-rw-r--r-- 1 root root 664 12月 8 13:41 x0005
补充内容
为分割后的文件指定文件名前缀
[root@shaofeng data]# split -b 1k data.file -d -a 4 split_file
[root@shaofeng data]# ls -all
总用量 40
drwxr-xr-x 2 root root 4096 12月 8 13:47 .
dr-xr-x---. 12 root root 4096 12月 8 13:47 ..
-rw-r--r-- 1 root root 5784 12月 8 13:35 data.file
-rw-r--r-- 1 root root 1024 12月 8 13:47 split_file0000
-rw-r--r-- 1 root root 1024 12月 8 13:47 split_file0001
-rw-r--r-- 1 root root 1024 12月 8 13:47 split_file0002
-rw-r--r-- 1 root root 1024 12月 8 13:47 split_file0003
-rw-r--r-- 1 root root 1024 12月 8 13:47 split_file0004
-rw-r--r-- 1 root root 664 12月 8 13:47 split_file0005
分割成多个文件,每个文件包含10行
[root@shaofeng data]# split -l 10 data.file
[root@shaofeng data]# ls -all
总用量 560
drwxr-xr-x 2 root root 4096 12月 8 13:49 .
dr-xr-x---. 12 root root 4096 12月 8 13:49 ..
-rw-r--r-- 1 root root 5784 12月 8 13:35 data.file
-rw-r--r-- 1 root root 40 12月 8 13:49 xaa
-rw-r--r-- 1 root root 43 12月 8 13:49 xab
-rw-r--r-- 1 root root 43 12月 8 13:49 xac
-rw-r--r-- 1 root root 43 12月 8 13:49 xad
csplit
[root@shaofeng data]# csplit server.log /SERVER/ -n 2 -f server {*} -b "%02d.log"
0
23
23
23
[root@shaofeng data]# ls -all
总用量 24
drwxr-xr-x 2 root root 4096 12月 8 14:12 .
dr-xr-x---. 12 root root 4096 12月 8 14:12 ..
-rw-r--r-- 1 root root 0 12月 8 14:12 server00.log
-rw-r--r-- 1 root root 23 12月 8 14:12 server01.log
-rw-r--r-- 1 root root 23 12月 8 14:12 server02.log
-rw-r--r-- 1 root root 23 12月 8 14:12 server03.log
-rw-r--r-- 1 root root 69 12月 8 13:52 server.log
[root@shaofeng data]# cat server01.log
SERVER-1
[connetion] 1
- /SERVER/用来匹配某一行,分割过程即从此处开始。
- /[REGEX/表示文本样式。包括从当前行(第一行)直到(但不包括)包含"SERVER"的匹配行。
- {*}表示根据匹配重复执行分割,直到文件末尾为止。可以用{整数}的形式来指定分割执行次数。
- -s使命令进入静默模式,不打印其他信息。
- -n指定分割后的文件名后缀的数字个数,例如01、02、03等。
- -f指定分割后的文件名前缀(在上面的例子中,server就是前缀)。
- -b指定后缀格式。例如%02d.log,类似于C语言中printf的参数格式。在这里文件名=前缀+后缀=server+%02d.log