linux系统中split命令

1、split按文件大小拆分文件

测试数据如下:

[root@centos79 test]# dd if=/dev/zero bs=1M count=100 of=a.txt
100+0 records in
100+0 records out
104857600 bytes (105 MB) copied, 0.0620975 s, 1.7 GB/s
[root@centos79 test]# ll -h
total 100M
-rw-r--r--. 1 root root 100M Jul  5 17:17 a.txt

 

2、-b参数按照大小拆分文件

[root@centos79 test]# ls
a.txt
[root@centos79 test]# split -b 50M a.txt
[root@centos79 test]# ll -h
total 200M
-rw-r--r--. 1 root root 100M Jul  5 17:17 a.txt
-rw-r--r--. 1 root root  50M Jul  5 17:19 xaa
-rw-r--r--. 1 root root  50M Jul  5 17:19 xab

 

3、利用cat命令合并拆分的文件

[root@centos79 test]# cat xaa xab > b.txt
[root@centos79 test]# ll -h
total 300M
-rw-r--r--. 1 root root 100M Jul  5 17:17 a.txt
-rw-r--r--. 1 root root 100M Jul  5 17:20 b.txt
-rw-r--r--. 1 root root  50M Jul  5 17:19 xaa
-rw-r--r--. 1 root root  50M Jul  5 17:19 xab
[root@centos79 test]# md5sum *
2f282b84e7e608d5852449ed940bfc51  a.txt
2f282b84e7e608d5852449ed940bfc51  b.txt
25e317773f308e446cc84c503a6d1f85  xaa
25e317773f308e446cc84c503a6d1f85  xab

 

5、给拆分后的文件增加前缀

[root@centos79 test]# rm !(a.txt)
[root@centos79 test]# ls
a.txt
[root@centos79 test]# split -b 50M a.txt sub_
[root@centos79 test]# ls
a.txt  sub_aa  sub_ab
[root@centos79 test]# ll -h
total 200M
-rw-r--r--. 1 root root 100M Jul  5 17:17 a.txt
-rw-r--r--. 1 root root  50M Jul  5 17:22 sub_aa
-rw-r--r--. 1 root root  50M Jul  5 17:22 sub_ab

 

6、使用-d参数给拆分后的文件指定00、01……后缀

[root@centos79 test]# rm !(a.txt)
[root@centos79 test]# ls
a.txt
[root@centos79 test]# split -b 50M a.txt sub_ -d
[root@centos79 test]# ls
a.txt  sub_00  sub_01
[root@centos79 test]# ll -h
total 200M
-rw-r--r--. 1 root root 100M Jul  5 17:17 a.txt
-rw-r--r--. 1 root root  50M Jul  5 17:25 sub_00
-rw-r--r--. 1 root root  50M Jul  5 17:25 sub_01

 

7、按行拆分文件

测试数据如下:

[root@centos79 test]# seq -f %02g 20 | sed = | sed 'N;s/\n/\t/' > a.txt
[root@centos79 test]# ls
a.txt
[root@centos79 test]# cat a.txt
1       01
2       02
3       03
4       04
5       05
6       06
7       07
8       08
9       09
10      10
11      11
12      12
13      13
14      14
15      15
16      16
17      17
18      18
19      19
20      20

 

8、使用 -n或者 -l n进行按行拆分文件

[root@centos79 test]# ls
a.txt
[root@centos79 test]# cat a.txt
1       01
2       02
3       03
4       04
5       05
6       06
7       07
8       08
9       09
10      10
11      11
12      12
13      13
14      14
15      15
16      16
17      17
18      18
19      19
20      20
[root@centos79 test]# split -l 5 a.txt sub_ -d     ## 按5行进行拆分文件
[root@centos79 test]# ls
a.txt  sub_00  sub_01  sub_02  sub_03
[root@centos79 test]# wc -l *
 20 a.txt
  5 sub_00
  5 sub_01
  5 sub_02
  5 sub_03
 40 total
[root@centos79 test]# cat sub_00
1       01
2       02
3       03
4       04
5       05

 

posted @ 2021-07-05 17:33  小鲨鱼2018  阅读(319)  评论(0编辑  收藏  举报