我有一个巨大的gzip文件(~400MB)。我想在文件的BEGINNING处添加一行文本。
我正在考虑使用标题行创建一个gzip文件,然后使用zcat
来组合头文件和日志文件。只是想检查一下是否有更好/更优雅/更有效的方法。
答案 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文件。)