问题描述
我有60MB左右各部分8000 GZ文件。我想将它们合并到几个较大的文件。因此,如何做,在bash脚本的无解压缩它们
I have some 8000 gz files of around 60MB each. I want to merge them into few larger files. So how to do it in a bash script without unzipping them ?
shell脚本可能需要输入新的文件大小或文件相结合的数量。
Shell script may take input as new-file-size or number of files to combine.
例如说我有1.gz,2.gz,3.gz ... 10.gz
现在我需要每说3个文件一个文件,所以现在1.gz,2.gz和3.gz会结合成1_new.gz等。
For example say I have 1.gz, 2.gz, 3.gz ... 10.gzNow I need one file per say 3 files, so now 1.gz, 2.gz and 3.gz will combine into 1_new.gz and so on.
推荐答案
有可能concatinate 的gzip
编辑文件一起,但是当你 gunzip解
生成的文件,你会得到一个单一的数据流,看的,以供参考。
It is possible to concatinate gzip
ed files together, however when you gunzip
the resulting file you'll get a single stream, see the gzip manual for reference.
一个脚本将类似于安斯加尔Wiechers的一个焦油
:
A script would be similar to Ansgar Wiechers's one for tar
:
#!/bin/bash
maxnum=$1
i=1
j=0
for f in *.gz; do
cat $f >> archive_$j.gz
i=$((i+1))
if [ $i -eq $maxnum ]; then
i=1
j=$((j+1))
fi
done
请注意,上面的code是未经考验的。
Note that the above code is untested.
如果您要存档的东西正确的焦油
是一个更好的解决方案,但如果你想要做的是concatinate许多文件其中一直的gzip
ED那么这样的concatination因为这是不错的。
If you want to archive things properly tar
is a better solution, but if all you want to do is concatinate a number of files which have been gzip
ed then such a concatination as this is good.
这篇关于Shell脚本:加入小gzip压缩文件到更大的文件解压缩没有他们的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!