Suprimir avisos do awk

Suprimir avisos do awk

Em um script, recebo alguns avisos do formulário awk: warning: escape sequence \( treated as plain (. Como quero usar a saída desse script para fazer coisas, quero que ele gere apenas resultados e não avisos.

Posso corrigir esse aviso facilmente, mas existe uma maneira de me livrar de todos os avisos no awk?

Responder1

Avisos e mensagens de erro geralmente são enviados para stderr, e esse parece ser o caso de awk, portanto, redirecionar stderr para /dev/null deve evitar que você veja essas mensagens, como esta:

awk your_options your_file 2>/dev/null

Responder2

O problema de direcionar stderrpara /dev/null(conforme sugerido pela resposta de @garyjohn) é que você sente faltaTODOSerros, não apenas este aviso que você gostaria de suprimir. Assim, você perderá algo mais significativo que dê errado. Má ideia, em geral.NUNCAfaça isso a menos que não haja outra alternativa. Felizmente, neste caso, existe uma alternativa muito melhor.

A solução limpa para o problema do OP é usar " \\(" em vez de " \(". É sobre isso que o awk/gawk está tentando alertá-lo - não é apenas choramingar por diversão.

informação relacionada