2015-04-02 64 views
0

经过一些负载测试后,我有一个60 GB的日志文件(测试停止,因为此文件使用了所有可用的磁盘空间)。为了能够继续使用服务器,我必须tar-gzip这个文件,但是现在我想查询这个文件而不需要将它作为一个整体解包。有没有办法使用linux命令行中提供的工具逐行读取这个文件?阅读巨大的tar.gz文件流类似的方式,逐行

+0

焦油不是comperssion格式;将单个文件集中到一个文件中,因此不会节省成本 - 只需在实际文件周围添加'tar'头文件。 – tripleee 2015-04-02 09:44:39

回答

0

测试在CentOS 6

zcat file.tar.gz | tar -x -O -f - 
0

其实,你可以简单地在vim打开,操作.bz2或.GZ文件。

vim file.tar.bz2 

并在那里做你的工作。

您可以使用bzcat甚至bzgrep来处理.bz2,与zcat或zgrep使用.gz相同。

但是,bzcat并没有节省太多,因为它实际上也会将文件解压缩到标准输出中。所以如果你想grep它,使用zgrep或bzgrep。

它可以很好地处理大文件。

bzgrep "pattern" file.tar.bz2 

bzcat file.tar.bz2 

测试在OSX 10.10

+3

当然,'vim'方法将整个文件解包并将其作为临时文件存储,并使用额外的元数据使其大于原始文件。在目前的情况下,这可能不可取 – twalberg 2015-04-02 17:56:12