Подавить предупреждения 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) заключается в том, что вы пропускаетеВСЕошибки, а не только это предупреждение, которое вы хотели бы подавить. Так что вы пропустите что-то более существенное, что пойдет не так. Плохая идея, в общем.НИКОГДАделайте это, если только нет другой альтернативы. К счастью, в этом случае есть гораздо лучшая альтернатива.

Чистое решение проблемы OP — использовать " \\(" вместо " \(". Вот о чем awk/gawk пытается вас предупредить — это не просто нытье ради забавы.

Связанный контент