Shell bash中的Grep数字范围
如何通过grep查看带有数字的字符串是否在数字范围内 我试过:Shell bash中的Grep数字范围,shell,grep,numbers,Shell,Grep,Numbers,如何通过grep查看带有数字的字符串是否在数字范围内 我试过: v1=110 v2=220 echo "app_name_117.sh" | grep -iEo "*.*.($v1|$v2).sh" 范围可以在0到999之间。 目前没有运气。最好使用awk而不是grep来比较数值范围: echo "app_name_117.sh" | awk -F '[._]+' '$(NF-1) >= 116 && $(NF-1) <= 118' && $NF==
v1=110
v2=220
echo "app_name_117.sh" | grep -iEo "*.*.($v1|$v2).sh"
范围可以在0到999之间。
目前没有运气。最好使用
awk
而不是grep
来比较数值范围:
echo "app_name_117.sh" | awk -F '[._]+' '$(NF-1) >= 116 && $(NF-1) <= 118' && $NF=="sh"
echo“app_name_117.sh”| awk-F'[."]+'''$(NF-1)>=116&&$(NF-1)正则表达式应该更复杂:
这可以帮助您生成一个:
您还可以使用awk:
$ echo "app_name_117.sh" | awk -F "[_.]" '{if ($3>=117 && $3<=120) print $0}'
除了grep还有其他解决方案吗?
$ echo "app_name_117.sh" | awk -F "[_.]" -v v1=110 -v v2=120 '{if ($3>=v1 && $3<=v2) print $0}'
app_name_117.sh
$ echo "app_name_07.sh" | awk -F "[_.]" -v v1=110 -v v2=120 '{if ($3>=v1 && $3<=v2) print $0}'
# no output