【发布时间】:2019-10-09 21:34:32
【问题描述】:
我知道 linux 中的 cmp 命令用于逐字节比较,我们可以在此基础上获得百分比差异吗? 示例我有两个文件 a1.jpg 和 a2.jpg 因此,当我使用 cmp 比较这两个文件时。我可以得到这两个文件之间差异的百分比吗? 示例:a1.jpg -> 有 1000 个字节,a2.jpg 有 1021 个(以更大的文件作为参考) 因此可以获得两个文件之间的百分比差异,即字节差异数/总字节数较大
寻找一些shell脚本sn-p。提前致谢
【问题讨论】:
-
cmp在第一次比较时停止比较。这不是一个工具。我认为你必须自己写一个。我相信你可以逐字节读取两个文件,比较,增加一些“difference_count”变量,比较文件的大小并计算除法。你试过什么?有cmp -i和cmp -b,但我觉得这将是一个很好的解决方案。此外,对于每次更改,cmp都需要重新打开文件,然后使用-i进行 fseek,这会比在简短的 C 程序中实现要慢。 -
我也可以看到这样的方式:使用换行符打印两个文件中的每个字节,使用
join --nocheck-order比较它们并从两个流中打印不匹配的行。然后计算行数,这将是不同的字节数。
标签: shell scripting difference cmp