我有一个.bz2
文件。我想列出前 10 行或后 10 行而不解压缩它,因为它太大了。我尝试过head -10
or tail -10
但我看到的是胡言乱语。我还需要比较两个压缩文件以检查它们是否相似。如何在不解压文件的情况下实现这一目标?
编辑:相似意味着相同(具有相同的内容)。
While bzip2
是一种基于块的压缩算法,所以理论上你could只需找到您想要解压缩的特定块,这会很复杂(例如,如果您最终想要看到的最后十行实际上跨越两个或更多压缩块怎么办?)。
为了回答您眼前的问题,您可以这样做,这实际上会解压缩整个文件,因此在某种意义上是浪费,但它不会尝试将该文件存储在任何地方,因此您不会遇到存储容量问题:
bzcat file.bz2 | head -10
bzcat file.bz2 | tail -10
如果您的发行版不包括bzcat
(根据我的经验,这有点不寻常),bzcat
相当于bzip2 -d -c
.
但是,如果您的最终目标是比较两个压缩文件(可能已在不同级别压缩,因此直接比较实际的压缩文件不起作用),您可以这样做(假设bash
作为你的外壳):
cmp <(bzcat file1.bz2) <(bzcat file2.bz2)
这将解压缩两个文件并逐字节比较未压缩的数据,而不会在任何地方存储任何一个解压缩的文件。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)