Linux 文件分割与合并命令

分割文本可惜用split

1. Split

-a, --suffix-length=N     后缀名称的长度    
    --additional-suffix=SUFFIX  append an additional SUFFIX to file names    
-b, --bytes=SIZE          每个输出文件按照字节数分割    
-C, --line-bytes=SIZE     每个输出文件按照多少行分割(保持一行的完整性)    
-d                        后缀以数字还是字符变化    
-e, --elide-empty-files   不产生空的输出文件    
    --filter=COMMAND      写入到shell命令行    
-l, --lines=NUMBER        每个输出文件按照多少行分割(不考虑分割大小是否平均)    
-n, --number=CHUNKS       产生chunks文件    
-t, --separator=SEP       使用新字符分割    
-u, --unbuffered          无需缓存    
    --verbose             实时输出    
    --help                帮助信息    
    --version             版本信息  

二、文件切割

文件切割模式分为两种:文本文件和二进制模式。
1、文本模式
文本模式只适用于文本文件,用这种模式切割后的每个文件都是可读的。文本模式又分为两种:按最大文件大小切割和按文本行数切割。
1)按文件大小切割
split -C 50k log.log splog
将文本文件log.log按每块最大50k的大小进行切割,不打碎行。输出文件名类似splogaa, splogab……
2)按文本行数切割
split -l 100 log.log splog
每个分块100行,不考虑大小。日志分析时应该有用。
2、二进制模式
split -b 50k log.log splog
每个分块(当然,最后一个不保证)大小都是50k,基本不可读。任何类型文件都可以用这种切割模式。

三、文件合并

不管用什么方式切割,合并方法不变。
    cat splog* >newLog.log

四、补充说明

split 参数:
    -a:指定输出文件名的后缀长度,默认为2个(aa,ab...)
    -d:指定输出文件名的后缀用数字代替
    -b:指定输出文件的最大字节数,如1k,1m...
    -C:指定每一个输出文件中单行的最大字节数
    -l:指定每一个输出文件的最大行数

猜你喜欢

转载自blog.csdn.net/Akeron/article/details/78261444