我一生都无法为此找出正确的正则表达式。
我正在寻找的是一个正则表达式来匹配 Linux 文件权限的有效数字表示(例如,740 表示全读,777 表示全全)。到目前为止,我已经尝试了以下方法:
strtotest=740
echo "$strtotest" | grep -q "[(0|1|2|3|4|5|7){3}]"
if [ $? -eq 0 ]; then
echo "found it"
fi
上面的问题是正则表达式匹配任何包含1-5
或7
其中的内容,而不管任何其他字符。例如,如果strtotest
要更改为709
,则条件为真。我也尝试过[0|1|2|3|4|5|7{3}]
,[(0|1|2|3|4|5|7{3})]
但这些都不起作用。
我使用的正则表达式是错误的,还是我错过了一些必须处理的东西grep
?