Compression 解压缩、编辑、压缩和连接文件
我有一堆大的压缩文件,我想连接起来。问题是,未压缩版本的末尾没有换行符,因此如果我尝试将它们组合在一起并对其进行压缩,则一个文件中的最后一行将连接到下一个文件中的第一行(这会导致我使用的软件出错)。 仅仅在每个压缩文件之间插入新行来对它们进行分类是行不通的,因为我认为gzip会检测到新行字符,并认为它是“尾随垃圾”Compression 解压缩、编辑、压缩和连接文件,compression,gzip,concatenation,cat,Compression,Gzip,Concatenation,Cat,我有一堆大的压缩文件,我想连接起来。问题是,未压缩版本的末尾没有换行符,因此如果我尝试将它们组合在一起并对其进行压缩,则一个文件中的最后一行将连接到下一个文件中的第一行(这会导致我使用的软件出错)。 仅仅在每个压缩文件之间插入新行来对它们进行分类是行不通的,因为我认为gzip会检测到新行字符,并认为它是“尾随垃圾” for f in *.gz; do (cat "${f}"; echo) >> all.gz; done; gzip -d all.gz gzip: all.gz:
for f in *.gz; do (cat "${f}"; echo) >> all.gz; done;
gzip -d all.gz
gzip: all.gz: decompression OK, trailing garbage ignored
我想做的是这样的:
unzip file1.gz | add a newline char| gzip the output >> output.gz
然后对file2.gz、file3.gz等执行相同的操作
有什么建议吗?您不需要反复解压缩。只需使用gzip压缩一字节的新行字符,并将其连接到大型gzip文件之间
echo | gzip > newline.gz
cat file1.gz newline.gz file2.gz newline.gz file3.gz ... > file.gz
这将是一个21字节的文件,你为每一行插入,但既然你说你的其他文件都很大,那就没关系了