无法比较awk中的两个浮点变量?

时间:2013-12-08 17:38:04

标签: shell awk

我试图在awk script内的shell script中的if语句中比较包含小数值的两个变量,如

#Shell script code
...
$weight=31.33
awk -v val=$weight '{if($NF > weight){print;}}' weight_chart.txt 

#weight_chart.txt#
johny    12    35.45
jenny    16    38.23
Tomu     8     29.12
...
...

输出应该是

johny    12    35.45
jenny    16    38.23

但是输出会打印文件weight_chart.txt的所有行

1 个答案:

答案 0 :(得分:0)

你犯了很多错误。

  1. Shell vars不以$
  2. 开头
  3. 您将awk变量命名为val,但在awk脚本中使用weight
  4. 试试这个:

    > weight=31.33
    > awk -v val=$weight '$NF > val' weight_chart.txt
    johny    12    35.45
    jenny    16    38.23