我想检查两个包含double
数字的文件是否相等。
我应该考虑接近的数字等于例如最多的差异0.0001
。
为此编写测试器很容易,C
但是有没有更简单的方法?例如 bash 命令?
我想检查两个包含double
数字的文件是否相等。
我应该考虑接近的数字等于例如最多的差异0.0001
。
为此编写测试器很容易,C
但是有没有更简单的方法?例如 bash 命令?
这是您可以做到的一种方法:
paste file1 file2 | awk '{d=$1-$2;if((d<0?-1*d:d)>0.0001) print $0 " " d }'
首先用于paste
打印出相应的行。然后将它们传递awk
给减去。计算绝对差并检查它是否大于您的公差 0.00001。如果是这样,打印出两个值和差值。
Bash 不提供用于浮点操作的运算符。您可以查找 bc 并将其集成到 bash 脚本中应该相当容易。
请参阅Linux 期刊上的这篇文章。这应该为您提供一个起点。文件结构由您决定。