Widziałem ten przykład:
hello=ho02123ware38384you443d34o3434ingtod38384day
echo ${hello//[0-9]/}
Co jest zgodne z następującą składnią: ${variable//pattern/replacement}
Niestety patternwydaje się, że pole nie obsługuje pełnej składni wyrażenia regularnego (jeśli używam .lub \s, na przykład, próbuje dopasować znaki literału).
Jak mogę wyszukać / zamienić ciąg przy użyciu pełnej składni wyrażeń regularnych?
\snie jest częścią standardowej składni wyrażeń regularnych zdefiniowanej w POSIX (ani BRE ani ERE); jest to rozszerzenie PCRE i przeważnie niedostępne z powłoki. [[:space:]]jest bardziej uniwersalnym odpowiednikiem.
\smożna zastąpić [[:space:]], nawiasem mówiąc, .przez ?, a rozszerzenia extglob do bazowego języka wzorców powłoki mogą być używane do takich rzeczy, jak opcjonalne podgrupy, grupy powtarzane i tym podobne.