
スクリプトで、 という形式の警告が表示されます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 が警告しようとしているのはまさにこれです。単に面白半分に文句を言っているのではありません。