我有一个巨大的gzip文件(~400MB),我想在文件开头附加一行文本。
我考虑创建带有标题行的gzip文件,然后使用zcat
将标题文件和日志文件组合在一起。只是想检查是否有更好/优雅/高效的方法来完成这个任务。
把两个被压缩的文件拼接成一个文件实际上是一个有效的gz文件。
试一下吧。
先将您想要添加的第一行压缩,然后使用cat命令将两个文件连接到第三个文件中。
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
gzip < newlineoftext > newfile.gz
cat oldfile.gz >> newfile.gz
cat
而不是zcat
。(我还没有确认它是否有效。) - Keith Thompson