问题:
最近在做一个接口,日志记录接口停用时的数据,当日志文件过大,读取日志修补数据时会出现Read Rimeout。此时需要将linux上的日志文件切分成小文件。因为很大,所以想把它切成若干份,每份N行,以便并行处理。
shell现成的工具--split。
语法:
split [-bl] file [prefix]
说明:
-b, --bytes=SIZE:对file进行切分,每个小文件大小为SIZE。可以指定单位b,k,m。
-l, --lines=NUMBER:对file进行切分,每个文件有NUMBER行。
prefix:分割后产生的文件名前缀。
示例:
假设要切分的文件为test.2018-09-10_17,大小1.2M,12000行。
1)
split -l 5000 test.2018-09-10_17
生成xaa,xab,xac三个文件。
wc -l 看到三个文件行数如下:
5000 xaa
5000 xab
2000 xac
12000 总计
2)
split -b 600k test.2018-09-10_17
生成xaa,xab两个文件
ls -lh 看到 两个文件大小如下:
600K xaa
554K xab
3)
split -b 500k test.2018-09-10_17 example
得到三个文件,文件名的前缀都是example
ls -lh 看到文件信息如下:
500K exampleaa
500K exampleab
154K exampleac