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