Depende. Estrictamente hablando, un estándar compatible con sed sólo se debe utilizar expresiones regulares básicas de las que the standard estados:
Los caracteres especiales BRE y los contextos en los que tienen su significado especial son los siguientes:
.[\
El período, izquierda el corchete cuadrado y la barra inclinada invertida deben ser especiales, excepto cuando se usan en una expresión de corchete (ver Expresión de corchete RE). Una expresión que contiene un '[' que no está precedida por una barra diagonal inversa y no es parte de una expresión de paréntesis produce resultados indefinidos. El asterisco debe ser especial excepto cuando se utiliza en una expresión de corchetes, como el primer carácter de un BRE completo (después de un '^' inicial, si lo hubiera), o como el primer carácter de una subexpresión (después de una inicial). '^', si hay alguno); ver BREs hacer coincidir múltiples caracteres
^
La circunfleja será especial si se utiliza como un ancla (ver la expresión de anclaje BRE) o como el primer carácter de una expresión entre corchetes (ver RS expresión de corchetes)
$
El dolar el letrero será especial cuando se use como ancla.
Así que la lista completa es .[\*^$
, pero el contexto es importante. Además, muchos sed proporcionan opciones para usar expresiones regulares extendidas (ERE), que ampliarán la lista y cambiarán el contexto en el que los caracteres son especiales. Por ejemplo, sin ERE, las agrupaciones se forman usando \(
y \)
, pero con los ERE (
y )
por sí mismos son especiales y se deben escapar para que coincidan literalmente.
La documentación para sed (y grep) es lo que estás buscando. ¿Qué no encontraste allí? – Mat
Acabo de ver ejemplos de qué son los caracteres especiales, pero nunca estoy seguro de que sea la _completa_ lista de caracteres especiales – mnr
No estoy seguro de lo que quiere decir con "carácter especial", pero la documentación enumera todo lo que puede hacer. No tiene sentido replicar esa documentación aquí. – Mat