Linux下分割合并文件
切割合并文件在linux下用split和cat就可以完成。下面举些实例进行说明。
1.文件切割
文件切割模式分为两种:
???? 文本文件
???? 二进制模式。
1.1文本模式
文本模式只适用于文本文件,用这种模式切割后的每个文件都是可读的。文本模式又分为两种:
???? 按最大文件大小切割;
???? 按文本行数切割。
1.1.1最大文件大小切割
split -C 5k duanxin split
将文本文件duanxin按每块最大5k的大小进行切割,不打碎行。输出文件名类似splitaa, splitab……
?
split -b 5k duanxin split
每个分块(当然,最后一个不保证)大小都是5k,可能会打碎行。
1.1.2 按文本行数切割
split -l 100 duanxin split
每个分块100行,不考虑大小。日志分析时应该有用。
1.2 二进制模式
split -b 5k duanxin split
每个分块(当然,最后一个不保证)大小都是5k,基本不可读。任何类型文件都可以用这种切割模式。
2.文件合并
cat split* >newduanxin
不管用什么方式切割,合并方法不变。
3.其它
split可以用-a选项指定输出文件名的长度。如
split -l 100 -a 3 duanxin split
则输出文件出类似于splitaaa,splitaab。不指定时默认为2。
用-b或-C指定分块大小时,可用的单位有,b for 512bytes, k for 1Kbytes, m for 1 Megbytes.
split 参数:
-a, --suffix-length=N?? 指定输出文件名的后缀,默认为2个
-b, --bytes=SIZE????????指定输出文件的字节数
-C, --line-bytes=SIZE??每一输出档中,单行的最大 byte 数
-d, --numeric-suffixes? 使用数字代替字母做后缀
-l, --lines=NUMBER????NUMBER 值为每一输出档的列数大小