在巨大的gzip文件的顶部附加一行

时间:2015-07-08 10:04:52

标签: linux shell logging

我有一个巨大的gzip文件(~400MB)。我想在文件的BEGINNING处添加一行文本。

我正在考虑使用标题行创建一个gzip文件,然后使用zcat来组合头文件和日志文件。只是想检查一下是否有更好/更优雅/更有效的方法。

2 个答案:

答案 0 :(得分:7)

连接到单个文件的两个gzip压缩文件实际上是一个有效的gz文件。

试试吧。

Gzip你要添加的第一行单行,然后将两行加到三分之一。

print "My newline" | gzip -c > /tmp/smallzip.gz
cat /tmp/smallzip.gz mybigfile.gz > newbigfile.gz 

这样可以节省解压缩大gz文件的时间和CPU,增加你的行和重新拉链,这将是:

(
    echo "My newline"
    zcat bigfile.gz
) | gzip -c > newbifile.gz 

答案 1 :(得分:3)

这应该有效:

gzip < newlineoftext > newfile.gz
cat oldfile.gz >> newfile.gz

(因为,正如另一个答案已经指出的,连接在一起的两个gzip压缩文件是一个有效的gzip文件。)