Linux 下大文件分割与合并
命令:split
作用:按需切割文件
命令格式:
split [选项] [参数]/文件名 [输出文件名]
使用方法介绍:
选项如下:
-<行数>或-l<行数> 指定每多少行就要切成一个小文件。
-b<字节> 指定每多少字就要切成一个小文件。支持单位:m,k
-C<字节> 与-b参数类似,但切割时尽量维持每行的完整性。
--help 显示帮助。
--version 显示版本信息。
参数如下:
被切分的文件名
切分之后的文件名前缀,不指定默认(a...)。
使用案例
1、将一个大文件切割成大小为5G的小文件,小文件名以little为前缀
split -b 5G bigfile.txt little
split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo_
其中 --bytes 为小文件的大小, --suffix-length 为小文件的序号是几位的 , foo 原始文件名,foo_ 为小文件名,他会自动生成foo_001 这样的小文件。
这种方法分割的小文件不能保证分割处单行数据的完整性
2、将被分割的小文件合并
cat little* > bigfile.txt
在Linux下用split进行文件分割:
模式一:指定分割后文件行数
对与txt文本文件,可以通过指定分割后文件的行数来进行文件分割。
命令:split -l 300 large_file.txt new_file_prefix
模式二:指定分割后文件大小
对于可执行文件等二进制文件,则不能通过文件行数来进行文件分割,此时我们可以指定分割大小来分隔文件。
命令:split -b 10m large_file.bin new_file_prefix
对二进制文件我们同样也可以按文件大小来分隔。
在Linux下用cat进行文件合并:
命令:cat small_files* > large_file
/////////////////////////////////////////////////////////////////
Linx文件分割命令split manpage:
NAME
split - split a file into pieces
SYNOPSIS
split [OPTION] [INPUT [PREFIX]]
DESCRIPTION
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default size
is 1000 lines, and default PREFIX is 'x'. With no INPUT, or when INPUT is
-, read standard input.
Mandatory arguments to long options are mandatory for short options too.
-a, --suffix-length=N
use suffixes of length N (default 2)
-b, --bytes=SIZE
put SIZE bytes per output file
-C, --line-bytes=SIZE