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。。。