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 命令输出如下:

linux split命令

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]#

 

linux split命令

上一篇:shell脚本之二:条件测试语句和if流程控制语句的使用


下一篇:shell脚本之一:shell脚本的基础