Puedes:
- Escape de cada símbolo especial individual con una barra invertida (como en
\[abc\]_\[x\|y\]
) o - Entre comillas dobles para todo el argumento (como en
"[abc]_[x|y]"
).
EDITAR: Como algunos han señalado, las comillas dobles no impiden la expansión de variables ni la sustitución de comandos. Por lo tanto, si su expresión regular contiene algo que bash puede interpretar como uno de esos, use comillas simples en su lugar.
Utilice comillas simples. Las comillas simples aseguran que ninguno de los caracteres sea interpretado.
$ printf %s 'spaces are not interpreted away
neither are new lines
nor variable names $TESTING
nor square brackets [TESTING]
nor pipe characters or redirection symbols | > <
nor the semicolon ;
nor backslashes \a \b \c \\
the only thing that does not work is the single quote itself
'
Hay dos soluciones si necesita incrustar una comilla simple:
$ printf '%s\n' '[ Don'"'"'t worry, be happy! ]'
[ Don't worry, be happy! ]
$ printf '%s\n' '[ Don'\''t worry, be happy! ]'
[ Don't worry, be happy! ]
Por man bash
Hay tres mecanismos de cotización:el carácter de escape , comillas simples y comillas dobles.
Una barra invertida sin comillas (\ ) es el carácter de escape . Conserva el valor literal del siguiente carácter que sigue, con la excepción de
Si se incluyen caracteres entre comillas simples, se conserva el valor literal de cada carácter entre comillas. Una comilla simple no puede aparecer entre comillas simples, incluso cuando va precedida de una barra invertida.
Encerrar caracteres entre comillas dobles conserva el valor literal de todos los caracteres dentro de las comillas, con la excepción de $ , ` , \ y, cuando la expansión del historial está habilitada, ! . Los personajes $ y ` conservan su significado especial entre comillas dobles. La barra invertida conserva su significado especial solo cuando va seguida de uno de los siguientes caracteres:$ , ` , " ,\ , o
Los parámetros especiales * y @ tienen un significado especial cuando están entre comillas dobles (consulte PARAMETERS abajo).
Palabras de la forma $' cadena ' son tratados especialmente. La palabra se expande a cadena , con caracteres de escape de barra invertida reemplazados según lo especificado por el estándar ANSI C. Las secuencias de escape de barra invertida, si están presentes, se decodifican de la siguiente manera:
\a alert (bell) \b backspace \e \E an escape character \f form feed \n new line \r carriage return \t horizontal tab \v vertical tab \\ backslash \' single quote \" double quote \nnn the eight-bit character whose value is the octal value nnn (one to three digits) \xHH the eight-bit character whose value is the hexadecimal value HH (one or two hex digits) \uHHHH the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHH (one to four hex digits) \UHHHHHHHH the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHHHHHH (one to eight hex digits) \cx a control-x character
El resultado expandido está entre comillas simples, como si el signo de dólar no hubiera estado presente.
Una cadena entre comillas dobles precedida por el signo de dólar ($" cadena " ) hará que la cadena se traduzca según la configuración regional actual. Si la ubicación actual es C o POSIX , se ignora el signo de dólar. Si la cadena se traduce y se reemplaza, el reemplazo se escribe con comillas dobles.