He visto este ejemplo:
hello=ho02123ware38384you443d34o3434ingtod38384day
echo ${hello//[0-9]/}
Que sigue a esta sintaxis: ${variable//pattern/replacement}
Desafortunadamente, el pattern
campo no parece admitir la sintaxis de expresiones regulares completas (si uso .
o \s
, por ejemplo, intenta hacer coincidir los caracteres literales).
¿Cómo puedo buscar / reemplazar una cadena usando la sintaxis completa de expresiones regulares?
\s
no es parte de la sintaxis de expresión regular estándar definida por POSIX (ni BRE ni ERE); es una extensión PCRE, y en su mayoría no está disponible desde shell. [[:space:]]
Es el equivalente más universal.
\s
puede ser reemplazado por [[:space:]]
, por cierto, .
por ?
, y las extensiones extglob al lenguaje de patrón de shell de línea de base pueden usarse para cosas como subgrupos opcionales, grupos repetidos y similares.