Linux 使用split分割文件 cat合并文件

说明:
这篇主要介绍了Linux下如何使用split分割文件 cat合并文件

说明:
split按大小切割:
#ls -lh RevolutionOS.rmvb
-rwx—— 1 hoho hoho 276M 2005-09-09 RevolutionOS.rmvb

将这个276M文件分割成20M的小文件,文件分割操作如下:
用法:split [选项] [输入 [前缀]]
# split -b 20m RevolutionOS.rmvb RevOS_part_
# ls -lh
总计 552M
-rwx—— 1 hoho hoho 276M 2005-09-09 RevolutionOS.rmvb
-rw-r–r– 1 root root 20M 03-19 17:59 RevOS_part_aa
-rw-r–r– 1 root root 20M 03-19 17:59 RevOS_part_ab

-rw-r–r– 1 root root 20M 03-19 18:00 RevOS_part_am
-rw-r–r– 1 root root 16M 03-19 18:00 RevOS_part_an

“-b 20m”指定分割文件的大小为20M,文件后面的“RevOS_part_”是分割文件的前缀,最后的是16M的“剩余”文件。

cat组装文件:
[root@pps public_rw] cat RevOS_part_* > RevolutionOS_RSB.rmvb
这里不怕组装顺序错误,因为分割的时候是按字母顺序排下来的,cat也是按照字母顺序处理的,如果不放心,将组装后的文件哈希对比一下:
# md5sum RevolutionOS.rmvb
ac7cce07f621b1ed6f692e6df0ac8c16 RevolutionOS.rmvb
# md5sum RevolutionOS_RSB.rmvb
ac7cce07f621b1ed6f692e6df0ac8c16 RevolutionOS_RSB.rmvb

split按大小切割:不加任何参数,默认情况下是以1000行大小来分割的。
语法:split [-b <字节>][-C <字节>][-l <行数>][要切割的文件][输出文件名]
# gunzip log.txt.gz //一定要先解压,否则分割的文件是不能cat/zcat显示;
# wc -l log.txt //计算一个文件的总行数;
208363 log.txt
# split -l 120000 log.txt newlog //通过指定行数,将日志分割成两个文件,newlog为前缀
# du -sh *50M log.txt
29M newlogaa
22M newlogab
# file * //分割后的文件与原文件属性一样
log.txt: ASCII text, with very long lines, with CRLF line terminators
newlogaa: ASCII text, with very long lines, with CRLF line terminators
newlogab: ASCII text, with very long lines, with CRLF line terminators
# gzip newlogaa newlogab //将分割后的文件进行压缩,以便传输

原文参考:
Linux系统下使用split命令分割大文件
linux文件分割(将大的日志文件分割成小的)

发表评论

邮箱地址不会被公开。 必填项已用*标注