awk: спасение в исходной строке 1
Я хочу получить цветной вывод журнала и не хочу использовать многозадачность.
Команда, которую я пытаюсь выполнить:
tail -100f some_file.log | awk '/INFO/ {print "\033[32m" $0 "\033[39m"} /Exception/ {print "\033[31m" $0"\033[39m"}'
но я получаю ошибку:
awk: syntax error at source line 1
context is
>>> /INFO <<< / {print "\033[32m" $0 "\033[39m"} /Exception/ {print "\033[31m" $0"\033[39m"}
4 missing ]'s
awk: bailing out at source line 1
Мое совершенно не экспертное предположение, что по какой-то причине он думает, что терминальные коды должны иметь закрытие ]'s
на них. Я пытался избежать их, но это не сработало, и, честно говоря, я не уверен, что это не испортит коды терминалов.
3 ответа
Установка и переход на gawk
исправил проблему. Спасибо всем, кто получил полезные ответы.
awk: спасение в исходной строке 1
Если вы находитесь на Solaris/SunOS
система, изменение awk
в начале этого скрипта /usr/xpg4/bin/awk
или же /usr/xpg6/bin/awk
, или же nawk
Из Эффективного программирования Awk, Выпуск 4:
Роза под любым другим именем Язык awk развивался годами. Полная информация представлена в Приложении A [Развитие языка awk], стр. 439. Язык, описанный в этой книге, часто называют "новым awk". По аналогии, оригинальная версия awk называется "старый awk".
В большинстве современных систем, когда вы запускаете утилиту awk, вы получаете новую версию awk.4 Если стандартный awk вашей системы старый, вы увидите что-то вроде этого, если попробуете тестовую программу:
$ awk 1 /dev/null error awk: syntax error near line 1 error awk: bailing out near line 1
В этом случае вы должны найти версию нового awk или просто установить gawk!
В этой книге всякий раз, когда мы ссылаемся на языковую функцию, которая должна быть доступна в любой полной реализации POSIX awk, мы просто используем термин awk. При ссылке на особенность, специфичную для реализации GNU, мы используем термин gawk.
4 Только системы Solaris все еще используют старый awk для> утилиты awk по умолчанию. Более современный awk живет в
/usr/xpg6/bin
на этих системах.
Этот ответ был перенесен из раздела Поиск шаблона с помощью awk и печати следующих 15 строк из файла журнала.