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
在 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