分割文本可惜用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:指定每一个输出文件的最大行数