Suprimir avisos do awk

1

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

Eu posso corrigir esse aviso facilmente, mas existe uma maneira de se livrar de todos os avisos no awk?

    
por Pedro Montoto García 20.12.2013 / 17:40

2 respostas

1

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

awk your_options your_file 2>/dev/null
    
por 20.12.2013 / 18:00
0

O problema de direcionar stderr para /dev/null (como sugerido pela resposta de @garyjohn) é que você perdeu erros ALL , não apenas esse aviso que você gostaria de suprimir. Então você vai sentir falta de algo mais significativo dando errado. Má ideia, em geral. NUNCA faça isso, a menos que não haja outra alternativa. Felizmente, neste caso, há uma alternativa muito melhor.

A solução limpa para o problema do OP é usar " \( " em vez de " \( ". Isso é o que o awk / gawk está tentando te alertar - não é apenas lamentar por diversão.

    
por 28.06.2017 / 00:58

Tags