当一个软件或者工程太大,需要备份到网盘中,使用网盘的朋友都知道在你不是会员的时候,你上传的文件是有大小限制的,这个时候就会面临如何将一个大文件进行切分,linux下的split命令是个很好的选择。它包含多种参数,支持按行,大小进行文件分割。
split命令的语法如下:
split [--help] [--version] [-a ] [-b] [-C] [-l] [要分割的文件] [输出文件名前缀]
对应的参数描述如下:
-a:--suffix-length=N 使用的后缀长度(默认是2)
-b:--bytes=SIZE 每个输出文件的字节大小
-C:--line-bytes=SIZE 每个输出文件每行的最大字节大小
-d:--numeric-suffixes 使用数字后缀代替字母后缀
-l:--line=NUMBER 设定每个输出文件的行数
--help:显示帮助信息
--version:显示版本信息
下面将举例进行说明:
1.将文件demo.txt分割成多个文件,分割后每个文件大小为20M,命令如下:
$ split -b 20m demo.txt
$ ls
demo.txt xaa xab xac
2.将demo.txt文件分割成多个文件,分割后每个文件大小为20M,指定分割后的文件前缀为demo,命令如下:
$ split -b 20m demo.txt demo
$ ls
demoaa demoab demoac demo.txt
3.将文件demo.txt分割成多个文件,每个文件为50万行,命令如下:
$ wc -l demo.txt
1502216 demo.txt
$ split -l 500000 demo.txt demo
$ ls
demoaa demoab demoac demoad demo.txt
wc -l demoa*
500000 demoaa
500000 demoab
500000 demoac
2216 demoad
1502216 demo.txt
4.将文件demo.txt分割成多个文件,每个文件50万行,指定分割后的文件后缀为数字,数字位数为3位,命令如下:
$ wc -l demo.txt
1502216 demo.txt
$ split -l 500000 -d -a 3 demo.txt demo
$ ls
demo000 demo001 demo002 demo003 demo.txt
5.文件合并可以使用cat命令将切分后的文件合并成新的文件,命令如下:
$ cat demo0* > newdemo.txt
$ wc -l newdemo.txt
1502216 newdemo.txt