unix 将合并文件合并为一个

wmvff8tz  于 4个月前  发布在  Unix
关注(0)|答案(3)|浏览(62)

目前我在这个目录-

/data/real/test

字符串
当我在命令提示符下执行ls -lt时。我得到下面的东西-

REALTIME_235000.dat.gz
REALTIME_234800.dat.gz
REALTIME_234600.dat.gz
REALTIME_234400.dat.gz
REALTIME_234200.dat.gz


如何在Unix中将上述五个dat.gz files合并为一个dat.gz file而不会丢失任何数据。我是Unix新手,对此我不确定。有人可以帮助我吗?

更新:-

我不知道哪种是最好的方法,我是否应该解压缩每五个文件,然后合并成一个?或合并所有这些five dat.gz成一个dat.gz

bogh5gae

bogh5gae1#

如果可以以随机顺序连接文件内容,则以下命令将完成此操作:

zcat REALTIME*.dat.gz | gzip > out.dat.gz

字符串

更新

这应该可以解决订单问题:

zcat $(ls -t REALTIME*.dat.gz) | gzip > out.dat.gz

mu0hgdu0

mu0hgdu02#

当你gunzip结果时,你想发生什么?如果你想让这五个文件重新出现,那么你需要使用gzip(.gz)格式以外的格式。你需要使用tar(.tar.gz)或zip(.zip)。
如果你希望gunzip的结果是原始文件的gunzip的连接,那么你可以简单地将这些文件cat(不是zcat或gzcat)在一起。gunzip会将它们转换为一个文件。

cat [files in whatever order you like] > combined.gz

字符串
然后又道:

gunzip combined.gz


将产生一个输出,它是原始文件的gunzip的连接。
建议将它们全部压缩,然后将它们重新压缩为一个流是完全不必要的。

aiqt4smr

aiqt4smr3#

这看起来几乎像一个黑魔法,但你实际上可以连接GZ文件直接
在内部,GZ被组织成独立的压缩流块,每个块都有自己的头部、压缩字典、校验和等。
因此,当您连接几个GZ文件时,未压缩的流正是原始文件的连接。

相关问题