我在 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,并且这些序列的计数可能会有所不同。