在脚本中,我收到一些形式的警告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 试图警告您的内容 - 它不只是为了好玩而抱怨。