extglobを使用しようとしていますが、マニュアルページを読んだ後、*(patternList)がどのように機能するのか混乱しました。次のコマンドを使用するとします。
touch A Ax Axxx Axxxx Ay X X.bak x xx xxxx
ls A*(xx)
A Axxxxだけを印刷するのはなぜですか? Axxxにはxxも正確に一度だけ含まれていませんか?また、Ayがxxで0回発生するので、なぜ印刷されないのですか?
答え1
パターンは名前の接頭辞だけでなく、完全な名前と一致する必要があります。
Ay
後ろに数字がA*(xx)
含まれていないため、一致しません。パターンと一致しません。一致して。A
xx
y
Ay
A*(xx)y
A*(xx)?
A*(xx)*
繰り返しますが、後ろに数字が含まれていないため、Axxx
一致するものはありません。 (次に3回)、(次に1回、)などが一致します。A*(xx)
A
xx
Axxx
A*(x)
A
x
A*(xx)x
A
xx
x
A*(xx)?
A*(xx)*
答え2
Axxxにはxxも正確に一度だけ含まれていませんか?
はい。ただし、x
パターンと一致しない追加のコンテンツがありますA*(xx)
。A*(xx)?
たとえば、次のように一致します。
また、Ayがxxで0回発生するので、なぜ印刷されないのですか?
繰り返しますが、パターンには末尾y
。
私の考えでは、結局グロブだと思うのは完全な文字列マッチ。