我不能爲我的生活找出適當的正則表達式。正則表達式爲Linux文件權限(數字符號)
我在尋找的是一個正則表達式來匹配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
的東西?
謝謝!這工作完美。我希望我可以+代表幾個人,但我想我需要在這個網站上更積極一些,才能這樣做:P –
'grep -Eq「[(0 | 1 | 2 | 3 | 4 | 5 | 7)] {3}「'(及其更長的堂兄弟)你發佈在你的回答中實際上是不正確的。 '[]'定義了一個範圍,所以你的正則表達式可以匹配「|| 9」,「77」等等。 – doubleDown
更正了正則表達式,因爲這是可接受的答案和最有可能被看到的答案。 – OmnipotentEntity