如何有效地将多个大.gz文件合并为一个?



我正在尝试将多个(29(个压缩文件(.gz(一个接一个地合并为一个文件。

压缩文件约为500MB,未压缩格式为~30GB。所有文件都以我不希望在最终文件中出现的标题开头。

我尝试使用zcatgzip来做到这一点,但这需要很多时间(超过 3 小时(:

zcat file*.gz | tail -n +2 | gzip -c >> all_files.txt.gz 

我也用pigz试过:

unpigz -c file*.gz | tail -n +2 | pigz -c >> all_files_pigz.txt.gz 

在这种情况下,我正在一个集群中工作,他们没有这个命令,我无法安装任何东西。

我尝试的最后一件事是将所有内容与cat合并:

cat file*.gz > all_files_cat.txt.gz

这并不需要很多时间,但是当我要阅读它时,在某个品脱出现以下消息:

gzip: unexpected end of file

我该如何处理这个问题?

如果要删除每个未压缩文件的第一行,并将它们全部连接成一个压缩文件,则需要一个循环。类似的东西

for f in file*.gz; do
zcat "$f" | tail -n +2
done | gzip -c > all_files_cat.txt.gz

如果有很多大文件,是的,可能需要一段时间。也许使用比默认压缩级别更低的压缩级别(以更大的文件大小为代价(。或者使用与 gzip 不同的压缩程序;有很多选项,每个选项都有自己的速度和压缩比权衡。

相关内容

  • 没有找到相关文章

最新更新