linux split命令
1. 以行为单位切割文件
首先创建一个有5行的文件hello,
#cat hello
Hello, World1
Hello, World2
Hello, World3
Hello, World4
Hello, World5
使用命令:
#split -2 hello split1_
split命令会将文件以两行为单位进行切割,每两行组成一个新文件,5行就有三个文件,名称会分别为:
split1_aa , split1_ab , split_ac
2. 以字节为单位的切割
还是文件hello,使用命令ls -l hello 可以看到文件的大小为65字节,以10字节切割文件,会有7个文件
先使用-b命令,如下:
#split -b 10 hello split2_
文件切出来有7个,
split2_aa , split2_ab , split2_ac , split2_ad , split2_ae , split2_af , split2_ag
下面使用-C参数,如下:
#split -C 10 hello split3_
切出了10个文件,用ls -l 命令输出如下:
3、举例
split支持自定义输出文件大小和输出文件行数两种模式,此外还可以定义每一行最大的值。
-l 按输出文件行数 : split -l 200 input_file out_file
-b 按输出文件大小 : split -b 200 input_file out_file(注意-b后边跟的数字需要换算成字节数)
注:out_file为输出文件的前缀
另外,还有 -d 和 -a 两个选项:
-d 如果加上-d则后缀为数字,不加则默认为字母
-a 默认为2,意思是后缀的位数,这个是根据你分出来的文件个数决定的
例如:
[root@CENTOS130 logs]# split -l 200 -d ./log -a 4 out [root@CENTOS130 logs]# ls -lh total 280K -rw-r--r-- 1 root root 127K Apr 15 15:44 log -rw-r--r-- 1 root root 15K Apr 18 14:40 out0000 -rw-r--r-- 1 root root 13K Apr 18 14:40 out0001 -rw-r--r-- 1 root root 15K Apr 18 14:40 out0002 -rw-r--r-- 1 root root 15K Apr 18 14:40 out0003 -rw-r--r-- 1 root root 14K Apr 18 14:40 out0004 -rw-r--r-- 1 root root 15K Apr 18 14:40 out0005 -rw-r--r-- 1 root root 13K Apr 18 14:40 out0006 -rw-r--r-- 1 root root 14K Apr 18 14:40 out0007 -rw-r--r-- 1 root root 13K Apr 18 14:40 out0008 -rw-r--r-- 1 root root 4.7K Apr 18 14:40 out0009 [root@CENTOS130 logs]#