抑制 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

stderr指向的问题/dev/null(正如 @garyjohn 的回答所暗示的)是,你会错过全部错误,而不仅仅是您想要抑制的警告。因此,您会错过任何更重要的错误。总的来说,这是个坏主意。绝不除非别无选择,否则就这样做。幸运的是,在这种情况下,有一个更好的选择。

原始问题的完美解决方案是使用“ \\(”而不是“ \(”。这就是 awk/gawk 试图警告您的内容 - 它不只是为了好玩而抱怨。

相关内容