私の人生にとっては、これに対して適切な正規表現を見つけることができません。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
に変更する場合、条件はtrueになります。私も[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