Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 通过文件读取将浮点数转换为整数_Bash_Awk_Sed_Cut - Fatal编程技术网

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

Bash 通过文件读取将浮点数转换为整数,bash,awk,sed,cut,Bash,Awk,Sed,Cut,当“行”的格式为#####时,我试图让它工作### 数据行示例: 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 如果您有: 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
如果您有:

line='Query_time: 188.882'
这句话:

$(echo "$line" | cut -d: -f2) -gt 180
将给出一个错误
无效的算术运算符
,因为BASH无法处理浮点数

您可以使用此awk命令:

awk -F ':[ \t]*' '{print ($2 > 180 ? "above" : "under")}' <<< "$line"
above
awk-F':[\t]*'{print($2>180?):“under”)}'如果您有:

line='Query_time: 188.882'
这句话:

$(echo "$line" | cut -d: -f2) -gt 180
将给出一个错误
无效的算术运算符
,因为BASH无法处理浮点数

您可以使用此awk命令:

awk -F ':[ \t]*' '{print ($2 > 180 ? "above" : "under")}' <<< "$line"
above
awk-F':[\t]*'{print($2>180?):“under”)}您可以使用此awk:

$ echo Query_time: 188.882 | awk '{ print ($2>180?"Over ":"Under ") 180 }'
Over 180
它采用第二个空格分隔的字段(
$2
),如果超过或低于(小于或等于)180,则使用条件运算符输出。

您可以使用此awk:

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

它使用第二个空格分隔的字段(
$2
),如果超过或低于(小于或等于)180,则使用条件运算符输出。

我添加了错误输出我添加了错误输出我猜我确实不需要使用
int
。或者那
-F
。这里真的是早上7点30分……我想真的没有必要用我刚才用的
int
。或者那
-F
。这里真的是早上7:30。。。