awk の警告を抑制する

awk の警告を抑制する

スクリプトで、 という形式の警告が表示されますawk: warning: escape sequence \( treated as plain (。そのスクリプトの出力を使用して操作を実行したいので、警告ではなく結果のみを出力したいです。

その警告は簡単に修正できますが、awk ですべての警告を取り除く方法はありますか?

答え1

警告とエラー メッセージは通常 stderr に送信され、 の場合もそうであるように思われますawk。そのため、次のように stderr を /dev/null にリダイレクトすると、これらのメッセージが表示されなくなります。

awk your_options your_file 2>/dev/null

答え2

(@garyjohnの回答で示唆されているように)指示することstderrの問題は、/dev/null全て抑制したいのはこの警告だけではなく、他のエラーも抑制します。そのため、より重大な問題が発生しても見逃してしまいます。一般的には、これは悪い考えです。一度もない他に選択肢がない限り、これを行ってください。幸いなことに、この場合ははるかに優れた代替手段があります。

OP の問題に対する明確な解決策は、" \\(" の代わりに " \(" を使用することです。awk/gawk が警告しようとしているのはまさにこれです。単に面白半分に文句を言っているのではありません。

関連情報