文本和压缩文件中的行数不同



我在 unix 中压缩了几个文件,后来发现压缩文件的行数与原始文件不同。

>>wc -l
70308 /location/filename.txt
2931  /location/filename.zip

这怎么可能?

zip文件是二进制文件。 wc命令面向文本文件。

文本文件的 zip 压缩版本可能包含或多或少数量的换行符zip因为 ping 不是每行都完成的。因此,如果它们都为所有命令提供相同的输出,则没有必要压缩和保持文件的不同格式。

从 wc 手册页:

-l, --lines    打印换行符计数

要获得匹配的输出,您应该尝试

$ 解压缩 -c |wc -l # 解压缩标准输出并计算行数

这将提供(大约)3 行额外的行(如果不涉及目录结构)。如果压缩的目录包含文本文件而不仅仅是文件,您可能会看到更多包含文件/目录信息的行。

在压缩算法中,单词/字符被一些二进制序列替换。

假设 被替换为 0011100其他一些字符"x"替换为 0001010()

因此,WC程序在zip文件中搜索序列0001010,并且这些序列的计数可能会有所不同。

最新更新