系统相关
首页 > 系统相关> > linux – 拆分gzip压缩日志文件而不在磁盘上存储未解压缩的拆分

linux – 拆分gzip压缩日志文件而不在磁盘上存储未解压缩的拆分

作者:互联网

我有一个经常性的任务,即将一组大的(每个大约1-2 GiB)gzip压缩的Apache日志文件拆分成几个部分(比如说500K行的块).应该再次压缩最终文件以限制磁盘使用量.

Linux上我通常会这样做:

zcat biglogfile.gz | split -l500000

生成的文件文件将命名为xaa,xab,xac等
所以我这样做:

gzip x*

这种方法的效果是,作为中间结果,这些巨大的文件暂时存储在磁盘上.有没有办法避免这种中间磁盘使用?

我可以(以类似于xargs的方式)通过命令(如gzip)拆分输出并在运行中重新压缩输出吗?
或者我是在寻找错误的方向,是否有更好的方法来做到这一点?

谢谢.

解决方法:

您可以使用slpit –filter选项,如the manual中所述,例如

zcat biglogfile.gz | split -l500000 --filter='gzip > $FILE.gz'

编辑:不知道何时引入了–filter选项但是根据注释,它在核心工具8.4中不起作用.

标签:linux,split,text-files,gzip
来源: https://codeday.me/bug/20191002/1842725.html