Unix - 百分比计算,结果应为 abs

Unix - Percentage calc, result should be abs


在 unix bash 脚本中,我试图计算两个数字之间的百分比差异:

$ 值 1=3947
$ 值 2=5853
$ echo "$Value1" "$Value2" | awk '{print ($1-$2)/$1*100}'
-48.2898

上面的命令对我来说工作得很好,但我希望结果是 abs (+ve number),有人能帮我实现这个吗。

谢谢,

遗憾的是,awk 确实内置了一个 abs() 函数。实施它:

function abs(x) {
    return (x<0 ? -x : x)
}

测试

$ awk -v a=42 -v b=-3.14 '
      function abs(x) {
          return (x<0 ? -x : x)
      }
      BEGIN {
          print abs(a)
          print abs(b)
      }'
42
3.14