我在unix中编写了几个文件,后来发现压缩文件的行数与原始文件的行数不同。
>>wc -l
70308 /location/filename.txt
2931 /location/filename.zip
这怎么可能?
答案 0 :(得分:1)
zip
个文件是二进制文件。 wc
命令是针对文本文件的。
zip文本文件的压缩版本可能包含更多或更少数量的换行符,因为zip
ping不是每行都行。因此,如果它们都为所有命令提供相同的输出,则无法压缩文件并使文件保持不同的格式。
来自wc手册页:
-l, --lines print the newline counts
要获得匹配的输出,您应该尝试
$ unzip -c | wc -l # Decompress on stdout and count the lines
这将给出(大约)3个额外的行(如果没有涉及目录结构)。如果压缩包含文本文件的目录而不是文件,则可能会看到包含文件/目录信息的更多行。
答案 1 :(得分:-1)
在压缩算法中,字/字符被一些二进制序列替换。
让我们假设\ n被0011100取代 和其他一些字符'x'被0001010(\ n)
取代所以wc程序在zip文件中搜索序列0001010,其数量可能会有所不同。