我一生都无法找出正确的正则表达式。
我正在寻找的是一个正则表达式来匹配 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
or 7
在其中,无论任何其他字符。例如,如果strtotest
被改为709
,条件为真。我也尝试过[0|1|2|3|4|5|7{3}]
and [(0|1|2|3|4|5|7{3})]
但那些效果不太好。
我使用的正则表达式是否错误,或者我是否缺少必须处理的内容grep
?
你想要的可能是
grep -Eq "[0-7]{3}"
编辑:
如果您使用它来查找具有某些权限的文件,您应该看看find http://www.linuxmanpages.com/man1/find.1.php (-perm
) or stat http://www.linuxmanpages.com/man1/stat.1.php
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)