Suprimir las advertencias de awk

Suprimir las advertencias de awk

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 stderra /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.

información relacionada