【问题标题】:Unix - Percentage calc, result should be absUnix - 百分比计算,结果应该是 abs
【发布时间】:2016-01-06 14:53:20
【问题描述】:


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

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

上面的命令对我来说非常好,但我希望结果是 abs(+ve 数字),有人可以帮我实现这一点。

谢谢,

【问题讨论】:

  • 我刚刚意识到我计算方差差异的方式也不正确。那么有人可以帮助我如何找到两个数字之间的差异百分比,我希望输出为绝对值。

标签: bash shell scripting


【解决方案1】:

遗憾的是,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

【讨论】:

    猜你喜欢
    • 2021-03-18
    • 1970-01-01
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 2011-06-01
    • 2021-01-10
    相关资源
    最近更新 更多