gpt4 book ai didi

Awk 大于小于

转载 作者:行者123 更新时间:2023-12-04 05:23:18 26 4
gpt4 key购买 nike

我正在使用这个命令

num1=2.2
num2=4.5

result=$(awk 'BEGIN{print ($num2>$num1)?1:0}')

这总是返回 0。无论是 num2>numl 还是 num1>num2
但是当我把实际数字这样
result=$(awk 'BEGIN{print (4.5>2.2)?1:0}')

我会得到 1 的返回值。这是正确的。

我能做些什么来完成这项工作?

最佳答案

使用变量时失败的原因是因为 awk用单引号括起来的脚本由 awk 评估而不是 bash : 所以如果你想从 bash 传递你正在使用的变量至 awk ,您必须使用 -v 指定它选项如下:

num1=2.2
num2=4.5

result=$(awk -v n1=$num1 -v n2=$num2 'BEGIN{print (n2>n1)?1:0}')

备注 awk里面用到的那个程序变量脚本不能以 $ 为前缀

关于Awk 大于小于,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13480155/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com