
En un script, recibo una advertencia del formulario awk: warning: escape sequence \( treated as plain (
. Como quiero usar la salida de ese script para hacer cosas, quiero que solo genere resultados y no advertencias.
Puedo corregir esa advertencia fácilmente, pero ¿hay alguna manera de deshacerme de todas las advertencias en awk?
Respuesta1
Las advertencias y los mensajes de error generalmente se envían a stderr, y ese parece ser el caso de awk
, por lo que redirigir stderr a /dev/null debería evitar que veas esos mensajes, como este:
awk your_options your_file 2>/dev/null
Respuesta2
El problema con dirigir stderr
a /dev/null
(como lo sugiere la respuesta de @garyjohn) es que te pierdesTODOerrores, no sólo esta advertencia que desea suprimir. Así que te perderás cualquier cosa más importante que salga mal. Mala idea, en general.NUNCAHaga esto a menos que no haya otra alternativa. Por suerte en este caso existe una alternativa mucho mejor.
La solución clara al problema del OP es utilizar " \\(
" en lugar de " \(
". Eso es sobre lo que awk/gawk intenta advertirte: no se trata sólo de quejarse por diversión.