2012-08-02 97 views
4

目前我在这个目录 -合并文件在一个

/data/real/test 

当我在命令提示符下执行ls -lt。我得到像下面something-

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

我怎样才能巩固上述五个dat.gz files到Unix的一个dat.gz file不会丢失任何数据。我是Unix新手,我不确定这一点。谁可以帮我这个事?

更新: -

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

+1

文件的顺序很重要吗? – 2012-08-02 20:56:12

+0

是的,它很重要。 – AKIWEB 2012-08-02 20:58:54

回答

10

如果它确定连接文件以随机顺序内容,那么下面的命令就可以了:

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

更新

这应该解决顺序问题:

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

我不想按随机顺序做。它需要在相同的顺序.. – AKIWEB 2012-08-02 20:58:48

+0

'zcat * .gz | gzip> out.dat.gz'我试过这样做。我得到了这个错误'REALTIME_EXPORT_v1x0_20120801_9_T_234000_234200.dat.gz.Z:没有这样的文件或目录 '的所有五个文件。为什么这样? – AKIWEB 2012-08-02 21:02:33

+0

@ Nevzz03我无法重现此问题。我在linux上使用** bash **和相同的文件名。 – 2012-08-02 21:11:10

5

当你对结果进行炮击时你想要发生什么?如果您希望五个文件重新出现,那么您需要使用非gzip(.gz)格式的文件。您需要使用tar(.tar.gz)或zip(.zip)。

如果您想让gunzip的结果成为原始文件的gunzip的串联,那么您可以简单地将这些文件(不是zcat或gzcat)连接在一起。然后gunzip将解压缩到一个文件。

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

然后:

gunzip combined.gz 

会产生一个输出,它是原始文件的gunzip解的串联。

建议将它们全部解压缩,然后将它们重新压缩为一个流是完全不必要的。

相关问题