Linux文件分割与合并

1.分割命令 -split

(1) 按行数分割:split -l 300 -d large_file.txt new_file_prefix --verbose
-l 表示按行分割,300表示每个文件300行,-d表示使用数字后缀;加上--verbose,显示分割进度:

 1 [root@root test]$ ll
 2 total 6188
 3 -rw-rw-r-- 1 root root 6333541 Dec 19  2018 bigFile.dat
 4 [root@root test]$ split -l 20000 -d bigFile.dat bigFile.data_ --verbose
 5 creating file `bigFile.data_00'
 6 creating file `bigFile.data_01'
 7 creating file `bigFile.data_02'
 8 creating file `bigFile.data_03'
 9 [root@root test]$ ll
10 total 12380
11 -rw-rw-r-- 1 root root 6333541 Dec 19  2018 bigFile.dat
12 -rw-rw-r-- 1 root root 1794909 Dec 10 06:32 bigFile.data_00
13 -rw-rw-r-- 1 root root 1796880 Dec 10 06:32 bigFile.data_01
14 -rw-rw-r-- 1 root root 1797622 Dec 10 06:32 bigFile.data_02
15 -rw-rw-r-- 1 root root  944130 Dec 10 06:32 bigFile.data_03

 

(2) 按字节大小分割 split -b 10m -d large_file.log new_file_prefix
-b 表示按字节分割,10m 表示每个文件10m行,-d表示使用数字后缀;加上--verbose,显示分割进度:

2.合并命令 -cat
cat part_* > merge_file.txt

1 [root@root test]$ cat bigFile.data_* > newBigFile.data
2 [root@root test]$ ll
3 total 18568
4 -rw-rw-r-- 1 root root 6333541 Dec 19  2018 bigFile.dat
5 -rw-rw-r-- 1 root root 1794909 Dec 10 06:32 bigFile.data_00
6 -rw-rw-r-- 1 root root 1796880 Dec 10 06:32 bigFile.data_01
7 -rw-rw-r-- 1 root root 1797622 Dec 10 06:32 bigFile.data_02
8 -rw-rw-r-- 1 root root  944130 Dec 10 06:32 bigFile.data_03
9 -rw-rw-r-- 1 root root 6333541 Dec 10 06:38 newBigFile.data

 

3. 查看文件行数命令 -wc

可以看到 合并后的文件行数和分割前的行数是一样的。

1 [root@root test]$ wc bigFile.dat
2   70509  438080 6333541 bigFile.dat
3 [root@root test]$ wc bigFile.data_00
4   20000  124171 1794909 bigFile.data_00
5 [root@root test]$ wc bigFile.data_01
6   20000  124272 1796880 bigFile.data_01
7 [root@root test]$ wc newBigFile.data
8   70509  438080 6333541 newBigFile.data

 

参数文档

https://www.cnblogs.com/bymo/p/7571320.html

 

posted @ 2018-12-26 16:16  veryvalley  阅读(277)  评论(0编辑  收藏  举报