Как я могу использовать Awk для преобразования временной отметки unix для чтения человеком при создании файла журнала Tail-f?

В настоящее время я делаю tail -f mysql.log и также tail -f mysql.log цвет . Но как я могу использовать awk для преобразования временных меток unix в читаемый человеком формат?

 tail -f /var/lib/mysql/mysql-slow.log | awk '/User@Host:/ { $0 = "\033[32m" $0 "\033[39m" } /Query_time:/ { $0 = "\033[36m" $0 "\033[39m" } 1' 

введите описание изображения здесь

2 Solutions collect form web for “Как я могу использовать Awk для преобразования временной отметки unix для чтения человеком при создании файла журнала Tail-f?”

Если у вас есть GNU awk ( gawk ), что обычно имеет место для не встроенных Linux и Cygwin, то вы можете использовать функцию strftime .

 if (match($0, /^(.*timestamp=)([0-9]+)(.*)$/, parts)) { time = strftime("%F %T", parts[2]); $0 = parts[1] time parts[3]; } 

На встроенной системе с BusyBox у вас может быть более ограниченная версия awk, но утилита date , способная выполнять преобразование.

 if (match($0, /timestamp=[0-9]+/)) { system("date +'%F %T' -d " substr($0, RSTART+10, RLENGTH-10)) | getline time; $0 = substr($0, 1, RSTART) time substr($0, RSTART+RLENGTH); } 

Только с инструментами POSIX невозможно конвертировать между человекочитаемыми датами и временными метками Unix, кроме как выполнять вычисления самостоятельно. (Я знаю, что в Интернете есть код оболочки и awk, но у меня нет ссылки.) Я рекомендую вам убедиться, что у вас есть что-то более совершенное, например gawk, perl, python и т. Д.

Отбрасывая цвета – вы можете использовать:

 # | piped at the end awk -F'SET timestamp=' 'NF > 1{ system("date -d @" $2) }' 

Снятие цветов в линию с помощью сброса делает его более сложным; Я подозреваю, что вы можете контролировать / корректировать это, удаляя концевые escape-последовательности, связанные с частью метки времени .

  • rsync и резервное копирование и изменение часового пояса
  • Как скопировать 5 новейших файлов из одного каталога в другой и удалить старые копии
  • Удалить файлы старше X дней +
  • найти команду для новейших 500 файлов в дереве каталогов, а также быть совместимым с POSIX
  • Получение файлов для текущей даты в Linux?
  • Удалить файлы из списка, которые были созданы / изменены в субботу
  • Продолжить загрузку, если временная метка не изменилась
  • что такое разрешение jiffie в ядре Linux
  • Получить последний каталог (не последний файл)
  • Удалять файлы старше X дней с последним измененным файлом
  • Скопировать дату создания файла в метаданные в ffmpeg
  • Interesting Posts

    Аутентификация пользователей через LDAP с использованием nginx

    Как установить CentOS 6 через запоминающее устройство USB?

    Два входных канала через перетасование дескриптора файла и / dev / fd

    Как настроить клавиатурные сокращения с помощью специальных модификаторов (например, Mod3) в Cinnamon?

    Ограничивает ли POSIX количество каталогов в корневом каталоге os?

    Как я могу сказать, что моя программа сохраняет в ~

    Не удается найти домашнюю сеть Wi-Fi на одном из двух ноутбуков с той же ОС

    Что эквивалентно «stty -echo» для zsh?

    NTFS монтирование с использованием fstab принудительно nosuid, nodev

    Как просматривать и воспроизводить файлы .mov на Ubuntu 16.04 LTS

    Удаление каталога из PATH

    Искать предыдущую команду с тем же префиксом, когда я нажимаю Up в командной строке

    Ошибка tkdiff в Linux Redhat 5.5

    Xorg потребляет 1,1 ГБ, это утечка?

    Умный способ дефрагментации файловой системы FAT?

    Linux и Unix - лучшая ОС в мире.