检查JSON中是否有更大的值

检查JSON中是否有更大的值,json,bash,expr,Json,Bash,Expr,我需要一些建议。。我正在编写一个BASH脚本,以检查JSON文件中的信息。但是我需要检查大于用户输入的数字的值 因此,如果用户在5.6中输入(必须是十进制),那么我将检查大于或等于该值的任何内容 "Buzz", 4.5 "Trashy Blonde", 4.1 "Berliner Weisse With Yuzu - B-Sides", 4.2 "Pilsen Lager", 6.3 "Avery Brown Dredge", 7.2 "Electric India", 5.2 所以它应该表现

我需要一些建议。。我正在编写一个BASH脚本,以检查JSON文件中的信息。但是我需要检查大于用户输入的数字的值

因此,如果用户在5.6中输入(必须是十进制),那么我将检查大于或等于该值的任何内容

"Buzz", 4.5
"Trashy Blonde", 4.1
"Berliner Weisse With Yuzu - B-Sides", 4.2
"Pilsen Lager", 6.3
"Avery Brown Dredge", 7.2
"Electric India", 5.2
所以它应该表现出来

"Pilsen Lager", 6.3
"Avery Brown Dredge", 7.2
我很接近。。但是我需要一些关于表达的建议

                read -p "Enter the ABV value greater to display: "  ABV_Value
                curl 'https://s3-eu-west-1.amazonaws.com/kg-it/devopsTest/api-punkapi-com-v2-beers.json' | jq  '.[] | .name,.abv' | {
                      while read name;
                        do
                                read abv
                                #if [ $abv -ge 5.1 ]; then
                                if [ $abv -ge $ABV_Value ]; then
                                     echo "$name, $abv"
                                fi
                        done
                        }

目前我得到-[:4.5:预期的整数表达式


任何建议都会被引用。

Bash不支持展平点算法。但是
jq
支持

read-p“输入大于显示的ABV值:”-r ABV_值
卷曲'https://s3-eu-west-1.amazonaws.com/kg-it/devopsTest/api-punkapi-com-v2-beers.json' |
jq-r--arg lim“$ABV|u Value”.[]|选择(.ABV>=($lim|tonumber))|
“\”+.name+“\”,“+(.abv|tostring)”

谢谢……我使用了第一个建议,并在($(echo“$abv<$abv\u Value\u Less”| bc-l))工作,与使用内置的
jq
功能相比,这是非常复杂的,不管怎么说,你都在使用它来进行JSON操作。
在读取时的速度非常慢,而且有些脆弱(特别是如果您忘记使用
read-r
来禁用
read
行为中的遗留异常)。如果您使用,那么就不需要curl、jq甚至bash脚本!
xidel-s”https://s3-eu-west-1.amazonaws.com/kg-it/devopsTest/api-punkapi-com-v2-beers.json“-e'”输入要显示的ABV值:“-e”let$a:=read()return$json()[abv>=$a]/join(“| | | | | | |,”,abv),“,”,”