При анализе ***** на серверах или в контейнерах часто требуется быстро найти нужную информацию, особенно в случаях, когда **** «завалены» повторяющимися сообщениями. Обычно для этого используют такие команды, как grep, но можно пойти дальше и сделать поиск более удобным, добавив цветное выделение и сортировку по ключевым словам. 1. Цветное выделение важных строк в логах с awk Представим, что у вас есть файл ***** app.log, в котором вы хотите выделить все строки, содержащие слово "error" красным, "warning" — жёлтым, а "info" — зелёным. Для этого используйте команду: awk ' /error/ {print "\033[31m" $0 "\033[39m"} /warning/ {print "\033[33m" $0 "\033[39m"} /info/ {print "\033[32m" $0 "\033[39m"} ' app.log Code awk ' /error/ {print "\033[31m" $0 "\033[39m"} /warning/ {print "\033[33m" $0 "\033[39m"} /info/ {print "\033[32m" $0 "\033[39m"} ' app.log В этом примере: • \033[31m — это ANSI-код для красного цвета; • \033[33m — для жёлтого; • \033[32m — для зелёного; • \033[39m — сброс цвета до стандартного. 2. Вывести только строки с ключевыми словами Если вы хотите игнорировать всё остальное, можно немного модифицировать команду: awk ' /error/ {print "\033[31m" $0 "\033[39m"} /warning/ {print "\033[33m" $0 "\033[39m"} /info/ {print "\033[32m" $0 "\033[39m"} ' app.log | grep -E "error|warning|info" Code awk ' /error/ {print "\033[31m" $0 "\033[39m"} /warning/ {print "\033[33m" $0 "\033[39m"} /info/ {print "\033[32m" $0 "\033[39m"} ' app.log | grep -E "error|warning|info" 3. Если необходимо искать ключевые слова в режиме реального времени Например, из потока вывода docker ****, можно комбинировать с tail -f: tail -f app.log | awk ' /error/ {print "\033[31m" $0 "\033[39m"} /warning/ {print "\033[33m" $0 "\033[39m"} /info/ {print "\033[32m" $0 "\033[39m"} ' Code tail -f app.log | awk ' /error/ {print "\033[31m" $0 "\033[39m"} /warning/ {print "\033[33m" $0 "\033[39m"} /info/ {print "\033[32m" $0 "\033[39m"} ' 4. В завершение, можно создать скрипт для регулярного использования: #!/bin/bash tail -f $1 | awk ' /error/ {print "\033[31m" $0 "\033[39m"} /warning/ {print "\033[33m" $0 "\033[39m"} /info/ {print "\033[32m" $0 "\033[39m"} ' Code #!/bin/bash tail -f $1 | awk ' /error/ {print "\033[31m" $0 "\033[39m"} /warning/ {print "\033[33m" $0 "\033[39m"} /info/ {print "\033[32m" $0 "\033[39m"} ' Сохраните его как log_color.sh, сделайте исполняемым (chmod +x log_color.sh), и теперь можно запускать команду так: ./log_color.sh app.log Code ./log_color.sh app.log Этот подход значительно ускорит анализ *****, делая визуально очевидными ошибки, предупреждения и информацию. Цветной вывод помогает быстро заметить проблемы, даже в больших объёмах *****.