Shell bash中的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==

如何通过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=="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