double
数値を含む 2 つのファイルの等価性をチェックしたい。
ほぼ等しい数、たとえば最大でも の差を考慮する必要があります0.0001
。
そのためのテスターを書くのはC
簡単ですが、もっと簡単な方法はありますか? 例えばbashコマンド?
double
数値を含む 2 つのファイルの等価性をチェックしたい。
ほぼ等しい数、たとえば最大でも の差を考慮する必要があります0.0001
。
そのためのテスターを書くのはC
簡単ですが、もっと簡単な方法はありますか? 例えばbashコマンド?
これを行う方法の 1 つを次に示します。
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 Journal のこの記事を参照してください。それはあなたに出発点を提供するはずです。ファイル構造を処理するのはあなた次第です。