Bu örneği gördüm:
hello=ho02123ware38384you443d34o3434ingtod38384day
echo ${hello//[0-9]/}
Bu sözdizimini takip eden: ${variable//pattern/replacement}
Ne yazık ki pattern
alan tam regex sözdizimini desteklemiyor gibi görünüyor ( .
veya kullanırsam \s
, örneğin gerçek karakterlerle eşleşmeye çalışır).
Tam regex sözdizimini kullanarak bir dizeyi nasıl arayabilir / değiştirebilirim?
\s
standart POSIX tanımlı normal ifade sözdiziminin bir parçası değildir (ne BRE ne de ERE); bir PCRE uzantısıdır ve çoğunlukla kabuktan kullanılamaz. [[:space:]]
daha evrensel bir eşdeğerdir.
\s
ile ikame edilmiş olabilir [[:space:]]
, bu arada, .
tarafından ?
ve taban çizgisi kabuk model bir dile extglob uzantıları gibi isteğe bağlı alt tekrarlanan grupları gibi şeyler için kullanılan ve edilebilir.