12 个版本
0.1.6 | 2023 年 10 月 13 日 |
---|---|
0.1.5 | 2023 年 10 月 13 日 |
0.1.3 | 2023 年 4 月 21 日 |
0.0.5 | 2023 年 4 月 17 日 |
#401 in 命令行工具
42 每月下载次数
105KB
732 行
biff
概述
逐字节比较两个文件。
biff 逐字节比较两个文件,如果它们不同,将显示它们不同的第一个字节和行号。另外,当设置选项 -l
或 --verbose
时,biff 将显示所有不同的字节。
biff 还可以跳过比较文件中的某些初始字节,或者只比较请求的字节数。
当比较二进制文件时,如果开始字节与指定的 标记 匹配,biff 可能会检查这些字节,因此只有具有此类标记的文件才会进行比较。
还有一些常见情况,比较的文件只在少数字节上有所不同,但通常可以被视为 相似,这是完全可以接受的。对于此类比较,biff 可以使用可接受的差异绝对总数(选项 -a
或 --absolute
)或差异百分比限制(选项 -p
或 --percent
)。
这种 相似比较 的最常见用途是从相同的 HTML 文件使用 Headless Chrome 生成的 PDF 文件。
biff 最好的应用场景是输出值为文件的测试用例。
安装
$ cargo install biff
用法
显示 biff 选项的简短描述
$ biff -h
显示 biff 选项的详细描述
$ biff --help
示例
文件相同
$ cat sample1.txt
Lorem ipsum.
$ cat sample2.txt
Lorem ipsum.
$ biff sample1.txt sample2.txt
$ echo $?
0
文件相同,但从第 3 个字节开始
$ cat sample1.txt
LOrem ipsum.
$ cat sample2.txt
MArem ipsum.
$ biff -i 2 sample1.txt sample2.txt
$ echo $?
0
文件相似(差异限制)
$ cat sample1.txt
LoreM ipsum.
$ cat sample2.txt
LoRem ipsuM.
$ biff -a 3 sample1.txt sample2.txt
$ echo $?
0
$ biff -p 26.8 sample1.txt sample2.txt
$ echo $?
0
$ biff -q -p 26.8 sample1.txt sample2.txt
$ echo $?
0
文件不同
$ cat sample1.txt
LoreM ipsum.
$ cat sample2.txt
LoRem ipsuM.
$ biff sample1.txt sample2.txt
sample1.txt sample2.txt differ: byte 3, line 1
$ echo $?
1
$ biff -b sample1.txt sample2.txt
sample1.txt sample2.txt differ: byte 3, line 1 is 114 82
$ echo $?
1
$ biff -bx sample1.txt sample2.txt
sample1.txt sample2.txt differ: byte 3, line 1 is 72 52
$ echo $?
1
$ biff -q sample1.txt sample2.txt
$ echo $?
1
$ biff -l sample1.txt sample2.txt
3 114 82
5 77 109
11 109 77
$ echo $?
1
$ biff -p 0.1 sample1.txt sample2.txt
sample1.txt sample2.txt differ: limit 0.1% exceeded by value 25.000%
$ echo $?
1
$ biff -a 1 sample1.txt sample2.txt
sample1.txt sample2.txt differ: limit 1 exceeded by value 3
$ echo $?
1
许可协议
根据您的选择许可以下任一项
。
贡献
所有有意提交供工作包含的贡献,将按照上述方式双重授权,不附加任何额外条款或条件。
依赖
~1MB
~16K SLoC