2013-12-08 1 views
1

Я пытаюсь сравнить две переменные, содержащие десятичные значения в, если заявление в awk script внутри shell script какНевозможно сравнить две переменные с плавающей запятой в awk?

#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

ответ

0

Вы совершаете много ошибок.

  1. Shell вары не начать с $
  2. Вы назвать переменную AWK, как val но с использованием weight в AWK сценария

Попробуйте это:

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

Привет анубхава, спасибо для ответа, но он все равно не работает, он вообще ничего не печатает: P –

+0

Вы можете увидеть исправленную команду и их вывод в моем ответе r. – anubhava

+0

Просто не забудьте скопировать/вставить 2 команды из моего ответа. – anubhava

Смежные вопросы