当前位置: 首页 > 面试题库 >

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

濮阳鸿卓
2023-03-14
问题内容

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

在Linux上,我通常会这样做:

zcat biglogfile.gz | split -l500000

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

gzip x*

这种方法的效果是,作为中间结果,这些 文件被临时存储在磁盘上。有办法避免这种中间磁盘使用情况吗?

我可以(类似于xargs的方式)通过命令(例如gzip)分割输出的管道并即时重新压缩输出吗?还是我看错了方向,是否有更好的方法来做到这一点?

谢谢。


问题答案:

您可以按照手册中的split --filter说明使用该选项,例如

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

编辑:不知道何时--filter引入了option,但根据注释,它在中不起作用core utils 8.4



 类似资料:
  • 我正在使用lz4压缩并将数据写入hive表,该表有20个文件,每个文件在HDFS上都是15G,并且该表的每个文件名都以lz4结尾,例如,。 当我从这个表中运行select count(1)时,它只启动了20个映射器,这意味着lz4 splittable不能生效。 据说lz4支持针对文本文件的可拆分性,所以我想问一下我应该做什么或其他步骤来实现这一点。

  • 问题内容: 我想使用urllib下载文件,并在保存之前对文件进行解压缩。 这就是我现在所拥有的: 最终将写入空文件。我该如何实现自己的追求? 更新的答案: 问题答案: 在写完之后,但要传递给之前,您需要寻找到开始的地方。否则它将被模块从头读取,并显示为空文件。见下文:

  • 我只有一个具有大xml文件最后顺序的文件,而不是许多小xml文件。你能告诉我出了什么问题吗?太感谢你们了!

  • 主要内容:一、日志种类,二、文件格式类型,三、redo log文件格式,四、相关代码,五、总结一、日志种类 在前面分析过了MySql数据库的日志,主要是两大类,即MySql的日志和数据库引擎的日志。在前面分析过的TC_LOG就是MySql中的2PC日志,同时Binlog也继承了此日志。在InnoDB引擎中,有Redo Log和Undo Log,在前面分析上层 控制的基础上,本次重点分析redo log日志的文件结构和相关控制流程。 二、文件格式类型 在Redo Log日志中,它是记载的逻辑