split分割命令

简介:

split命令的作用是根据设置的子文件大小或者行数将大文件分割为小文件,默认的子文件后缀为2个字母,起始值为aa,按照aa,ab,ac的顺序依次递增。当然如果你想要以数字为后缀,可以使用-d参数,起始值为0,-a参数可以设置后缀长度,默认后缀长度为2,这也就是为什么不使用后缀设置参数时,子文件默认后缀是以aa开始的递增值。

 

使用-b参数将文件分割为最大容量为3k的小文件(-b参数的默认单位是byte):

1
2
3
4
[whx@localhost ~]$  split  -b 3k. /test/man . test .config   man .config. split
[whx@localhost ~]$ ll  man .config. split *
-rw-rw-r--. 1 whx whx 3072 Aug 24 18:45man.config.splitaa
-rw-rw-r--. 1 whx whx  985 Aug 24 18:45  man .config.splitab

 

查看子文件大小:

1
2
3
[whx@localhost ~]$ ll -lhtman.config. split *
-rw-rw-r--. 1 whx whx 3.0K Aug 24 18:50man.config.splitaa
-rw-rw-r--. 1 whx whx  985 Aug 24 18:50  man .config.splitab

 

使用-l参数将文件按照每个子文件最多40行数据来分割:

1
2
3
4
5
6
[whx@localhost ~]$  split  -l 40  . /test/man . test .config   man .config. split
[whx@localhost ~]$ llman.config. split *                                
-rw-rw-r--. 1 whx whx 1167 Aug 24 18:47man.config.splitaa
-rw-rw-r--. 1 whx whx 1456 Aug 24 18:47man.config.splitab
-rw-rw-r--. 1 whx whx 1088 Aug 24 18:47man.config.splitac
-rw-rw-r--. 1 whx whx  346 Aug 24 18:47  man .config.splitad

查看每个子文件的行数:

1
2
3
4
5
6
[whx@localhost ~]$  wc  -l  man .config.splitaaman.config.splitab  man .config.splitac  man .config.splitad
   40man.config.splitaa
   40man.config.splitab
   40man.config.splitac
   11man.config.splitad
  131total

 

使用-C参数在保证每行数据的完整性的情况下,将文件分割为最大容量为500字节的小文件:

1
[whx@localhost ~]$  split  -C 500    . /test/man . test .config   man .config. split

 

同样使用-b将文件分割为最大容量为500字节的小文件,并将子文件后缀改为用由000开始的3个数字来表示:

1
[whx@localhost ~]$  split  -b 500 -d -a3   . /test/man . test .config   man .config. split

比较使用-C和-b的差别:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[whx@localhost ~]$ ll  man .config.spli*                                           
-rw-rw-r--. 1 whx whx 500 Aug 24 19:03man.config.split000
-rw-rw-r--. 1 whx whx 500 Aug 24 19:03man.config.split001
-rw-rw-r--. 1 whx whx 500 Aug 24 19:03man.config.split002
-rw-rw-r--. 1 whx whx 500 Aug 24 19:03man.config.split003
-rw-rw-r--. 1 whx whx 500 Aug 24 19:03man.config.split004
-rw-rw-r--. 1 whx whx 500 Aug 24 19:03man.config.split005
-rw-rw-r--. 1 whx whx 500 Aug 24 19:03man.config.split006
-rw-rw-r--. 1 whx whx 500 Aug 24 19:03man.config.split007
-rw-rw-r--. 1 whx whx  57 Aug 24 19:03  man .config.split008
-rw-rw-r--. 1 whx whx 441 Aug 24 19:02man.config.splitaa
-rw-rw-r--. 1 whx whx 487 Aug 24 19:02man.config.splitab
-rw-rw-r--. 1 whx whx 465 Aug 24 19:02man.config.splitac
-rw-rw-r--. 1 whx whx 488 Aug 24 19:02man.config.splitad
-rw-rw-r--. 1 whx whx 474 Aug 24 19:02man.config.splitae
-rw-rw-r--. 1 whx whx 496 Aug 24 19:02man.config.splitaf
-rw-rw-r--. 1 whx whx 454 Aug 24 19:02man.config.splitag
-rw-rw-r--. 1 whx whx 459 Aug 24 19:02man.config.splitah
-rw-rw-r--. 1 whx whx 293 Aug 24 19:02man.config.splitai

从上面的结果可以看出,使用-b参数,子文件数量是8个,而且每个子文件都是严格按照大小为500字节来分割的,而是用-C参数,子文件数量是9个,每一个子文件大小都小于设置的文件大小数值500字节的,这是因为使用-C不会将一行完整的数据分割成两行,来满足设置的文件大小值,而-b则刚好相反,这也是一般情况下使用-C分割出来的子文件数量会比使用-b分割出来的子文件数量多的原因。

 

将多个子文件合并为一个大文件可以使用>>,如果你想在合并之后自动显示合并后大文件的内容也可以使用tee -a来实现。

1
2
3
4
5
6
7
8
9
10
11
12
[whx@localhost ~]$  cat  man .config.splita*>>  man .config.b
[whx@localhost ~]$ ll  man .config.*
-rw-rw-r--. 1 whx whx 4057 Aug 24 19:21man.config.b
  
[whx@localhost ~]$  cat  man .config.split0*| tee  -a  man .config.c
#
# Generated automatically from man.conf.inby the
# configure script.
#
# man.conf from man-1.6f
#
..

 

使用这两种方式最终合并出来的大文件是完全一致的:

1
2
3
[whx@localhost ~]$ ll  man .config.*                            
-rw-rw-r--. 1 whx whx4057 Aug 24 19:21  man .config.b
-rw-rw-r--.1 whx whx 4057 Aug 24 19:21  man .config.c

 

合并之后可以看到,之前分割出来的小文件依然是存在的,如果你不需要这些小文件可以手动去删除。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[whx@localhost ~]$ ll  man .config*   
-rw-rw-r--. 1 whx whx 4057 Aug 24 19:21man.config.b
-rw-rw-r--. 1 whx whx 4057 Aug 24 19:21man.config.c
-rw-rw-r--. 1 whx whx  500 Aug 24 19:03  man .config.split000
-rw-rw-r--. 1 whx whx  500 Aug 24 19:03  man .config.split001
-rw-rw-r--. 1 whx whx  500 Aug 24 19:03  man .config.split002
-rw-rw-r--. 1 whx whx  500 Aug 24 19:03  man .config.split003
-rw-rw-r--. 1 whx whx  500 Aug 24 19:03  man .config.split004
-rw-rw-r--. 1 whx whx  500 Aug 24 19:03  man .config.split005
-rw-rw-r--. 1 whx whx  500 Aug 24 19:03  man .config.split006
-rw-rw-r--. 1 whx whx  500 Aug 24 19:03  man .config.split007
-rw-rw-r--. 1 whx whx   57 Aug 24 19:03  man .config.split008
-rw-rw-r--. 1 whx whx  441 Aug 24 19:02  man .config.splitaa
-rw-rw-r--. 1 whx whx  487 Aug 24 19:02  man .config.splitab
-rw-rw-r--. 1 whx whx  465 Aug 24 19:02  man .config.splitac
-rw-rw-r--. 1 whx whx  488 Aug 24 19:02  man .config.splitad
-rw-rw-r--. 1 whx whx  474 Aug 24 19:02  man .config.splitae
-rw-rw-r--. 1 whx whx  496 Aug 24 19:02  man .config.splitaf
-rw-rw-r--. 1 whx whx  454 Aug 24 19:02  man .config.splitag
-rw-rw-r--. 1 whx whx  459 Aug 24 19:02  man .config.splitah
-rw-rw-r--. 1 whx whx  293 Aug 24 19:02  man .config.splitai



本文转自 天黑顺路 51CTO博客,原文链接:http://blog.51cto.com/mjal01/1959227,如需转载请自行联系原作者
相关文章
|
7月前
|
C#
C#有关字符串的分割,替换,截取
C#有关字符串的分割,替换,截取
|
6月前
|
Java
java字符串分割split你用对了吗
java字符串分割split你用对了吗
|
7月前
|
Linux
split 的详细用法
【4月更文挑战第13天】split 的详细用法
142 9
|
7月前
|
存储 Java
用logrote和split分割nohup.out日志
用logrote和split分割nohup.out日志
164 0
|
JavaScript 前端开发
javascript中使用split对多个分割符进行分割
javascript中使用split对多个分割符进行分割
328 0
|
JavaScript
js利用split分割截取---1:1(整理)
js利用split分割截取---1:1(整理)
|
测试技术 索引 Python
介绍kfold.split()的详细用法
KFold是交叉验证中的一种方法,其可以将数据集划分为K份,然后使用其中一份作为验证集,剩下的K-1份作为训练集。这个过程可以重复K次,以便每个子集都被用作验证集。KFold.split()是KFold类中的一个方法,用于将数据集分割为K个互不重叠的子集,每个子集包含相同数量的数据点。
918 0

热门文章

最新文章