分割文件split
档处理文件时,有时需要将文件做分隔处理,split命令用于分割文件,可以分割文本文件,按指定的行数分隔,每个分隔的文件都包含相同的行数。split可以分隔非文本文件,分割时可以指定每个文件的大小,分隔后的文件有相同的大小。split后的文件可以使用cat命令组装在一起。
[root@CentOS cmd]# cat src.txt
[root@CentOS cmd]# split src.txt
[root@CentOS cmd]# ls
#split默认按1000行分隔文件
[root@CentOS cmd]# ls
[root@CentOS cmd]# wc -l *
[root@CentOS cmd]# ls -lhtr
#按每个文件3行分隔文件
[root@CentOS cmd]# split -l 3 src.txt
[root@CentOS cmd]# ls
[root@CentOS cmd]# cat xa*
#中间结果省略
[root@CentOS cmd]# cat xaa
#如文件行数太多,使用默认的2个字符已经不能满足需求
[root@CentOS cmd]# split -l 3 src.txt
[root@CentOS cmd]# rm -f xa*
[root@CentOS cmd]# ls
#指定分隔前缀的长度
[root@CentOS cmd]# split -a 5 -l 3 src.txt
[root@CentOS cmd]# ls
[root@CentOS cmd]# rm -f xaaaa*
#使用数字前缀
[root@CentOS cmd]# split -a 5 -l 3 -d src.txt
#指定每个文件的大小,默认为字节,可以使用1m类似的参数默认为B,另外有单位b,k,m等
SIZE可加入单位:b代表512,k代表1k,m代表1Meg
[root@CentOS cmd]# split -a 5 -b 3 src.txt
[root@CentOS cmd]# ls -l xaaaaa
[root@CentOS cmd]# src.txt xaa xaaaaa xaaaab xaaaac xaaaae xaaaaf xaaaag
[root@CentOS cmd]# cat xa* >dst.txt
[root@CentOS cmd]# md5sum src.txt dst.txt
#指定分隔前缀
[root@CentOS cmd]# split -a 5 -b 3000 src.txt src_
[root@CentOS cmd]# ls
当把一个大的文件分拆为多个小文件后,如何校验文件的完整性呢,一般通过MD5工具来校验对比。对应的Linux命令为md5sum。
提示:有关md5的校验机制和原理请参考相关文档,本节不再描述。