我真的想不出来这个问题的正确正则表达式。
我正在寻找一个可以匹配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
有关的内容?