Как я могу использовать 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-последовательности, связанные с частью метки времени .

  • Как переименовать файлы и преобразовать datestamp из DD-MM-YYYY в YYYY-MM-DD?
  • Почему sudo timestamp не обновляется при установке NOPASSWD?
  • Calc добавляет '(апостроф) при импорте времени из CSV
  • Я пытаюсь получить журналы в течение последних пяти минут через скрипт
  • Сравнение времени файла в ksh
  • Временная отметка файла на установленном диске показывает 1 час отставания
  • Почему debugfs не показывает crtime в наносекундах?
  • В org-mode Emacs любой способ скрыть поддерево с отметкой времени, не установленной на сегодняшний день?
  • Каково законное использование команды `touch`?
  • «Обновляет» zip-файл с опцией -FS изменяет время модификации файла?
  • Установите дату создания файла в дату его изменения на OSX
  • Interesting Posts

    Как отображать дескрипторы открытых файлов, но не используя команду lsof

    URL с именем хоста не работает, но он работает с IP-адресом

    Запускать скрипт как root во время загрузки и отображения в терминале linux по умолчанию?

    Как я могу ограничить пользовательское приложение для работы в определенном пространстве имен в сети?

    Нет повышенных разрешений при использовании графических приложений на i3 wm

    Изменить заголовок заголовка tmux на текущее имя папки

    ssh_exchange_identification: соединение закрыто удаленным хостом (не используя hosts.deny)

    Какую команду вы бы использовали, если вы хотите удалить пароль, назначенный группе

    Как вызвать метод настройки результата, который активен до первой перезагрузки?

    Как найти команды / файлы в моем PATH через вкладку с помощью подстановочных знаков?

    Эффективен ли tar -list?

    Как загрузить загрузочный носитель Fedora 17 для загрузки моего ноутбука?

    Linux: установить дату через командную строку

    Проблема с PHP, libncursesw и Arch

    Shell Script считывает метаданные файла, а затем mv каждый в новый каталог

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