通过文件读取将浮点数转换为整数

时间:2016-12-28 05:24:40

标签: bash awk sed cut

我试图在" line"格式为###。###

示例数据行:

Query_time: 188.882

当前脚本:

#!/bin/bash

while read line; do
    if [ $(echo "$line" | cut -d: -f2) -gt 180 ];
    then
        echo "Over 180"
    else
        echo "Under 180"
    fi
done < test_file

我得到的错误:

./calculate: line 4: [: 180.39934: integer expression expected

2 个答案:

答案 0 :(得分:2)

如果你有:

.allowUserInteraction

这个表达式:

line='Query_time: 188.882'

由于BASH无法处理浮点数,因此会给出错误$(echo "$line" | cut -d: -f2) -gt 180

您可以使用此awk命令:

invalid arithmetic operator

答案 1 :(得分:1)

你可以使用这个awk:

$ echo Query_time: 188.882 | awk '{ print ($2>180?"Over ":"Under ") 180 }'
Over 180

它采用第二个空格分隔字段($2)并使用条件运算符输出(如果它已经结束或下(小于或等于)180。