作者:Escape来源:https://escapelife.github.io/...往往由于网络传输的限制,我们经常需要在linux系统下切割大文件。这样,一个大文件被切割成多个小文件,传输,传输完成后合并。Linux下大文件的分割与合并Linux学习-文件的分割与合并Linux下大文件的分割与合并1.文件切割-spit在Linux系统中使用split命令切割大文件非常方便[1]命令语法#-a:指定输出文件名的后缀长度(默认为2:aa,ab...)#-d:指定输出文件名的后缀替换为数字#-l:行数splitmode(指定多少行分割成一个小文件;默认行数为1000行)#-b:binarysplitmode(supportunit:k/m)#-C:filesizesplitmode(尽量保持切割时每一行的完整性)split[-a][-d][-l<行数>][-b<字节>][-C<字节>][要切割的文件][输出文件名][2]使用示例#linecutfile$split-l300000users.sql/data/users_#使用数字后缀$split-d-l300000users.sql/data/users_#按字节大小拆分$split-d-b100musers.sql/data/users_[3]帮助信息#帮助信息$split--helpUsage:split[OPTION]...[FILE[PREFIX]]输出FILE片断到PREFIXaa,PREFIXab,...;default大小为1000行,默认PREFIX为'x'。没有FILE,或者当FILE为-时,读取标准输入。长选项的强制参数对于短选项也是强制的。-a,--suffix-length=N生成长度为N的后缀(默认为2)对于2)--additional-suffix=SUFFIX将附加后缀附加到文件名-b,--bytes=SIZE每个输出文件放置SIZE字节-C,--line-bytes=SIZE每个输出文件最多放置SIZE字节的记录-d使用从0开始的数字后缀,而不是字母使用数字后缀而不是字母后缀--numeric-suffixes[=FROM]与-d相同,但允许设置起始值-e,--elide-empty-files不生成空输出文件,带'-n'不生成空输出文件--filter=COMMANDwritetoshell命令;filenameis$FILEwritetoshellcommandline-l,--lines=NUMBERputNUMBERlines/recordsperoutputfileseteachoutputNumberoflinesinthefile-n,--number=CHUNKSgenerateCHUNKS输出文件;参见下面的解释generatechunksfile-t,--separator=SEP使用SEP而不是换行符作为记录分隔符;使用新字符分隔'\0'(零)指定NUL字符-u,--unbuffered立即将输入复制到带有'-nr/...'的输出而不缓存--verboseprint在每个显示分割程度输出文件打开之前的诊断--help显示此帮助并退出显示帮助信息--version输出版本信息并退出显示版本信息SIZE参数是一个整数和可选单位(例如:10K是10*1024)。单位是K,M,G,T,P,E,Z,Y(1024的幂)或KB,MB,...(1000的幂)。CHUNKS可能是:N拆分成N个文件基于输入K/N的大小N的第K输出到标准输出l/N拆分为N个文件而不拆分行/记录l/K/N输出N的第K到标准输出而不拆分行/记录r/N像'l'但使用roundrobindistributionr/K/N同样但只输出KthofN到stdoutGNUcoreutils在线帮助:
