@ar2rsoft
PHP-developer

Как можно при выводе логов преобразовать timestamp в читаемый формат?

Всех приветсвтую

Есть большой файл с логами, в нем дата записана в начале каждой строки в виде [1582360680203] ...

Можно ли при выводе cat'ом как-то преобразовать это в читаемый вид yyyy-mm-ddd HH:ii:ss ?
  • Вопрос задан
  • 244 просмотра
Решения вопроса 2
CityCat4
@CityCat4
Внимание! Изменился адрес почты!
Приведу пару примеров для лога сквида, где как известно UNIX time:
На awk
#!/usr/bin/gawk -f
BEGIN {
format="%a %b %d %H:%M:%S %Z %Y"
}
{
  print strftime(format,$1),$2,$3,$4,$5,$6,$7,$8,$9,$10
}

На perl
#!/usr/bin/perl

if ($ARGV[0] eq '')
  {
    printf STDERR "Input file missing. Run: newlog <in.file> <out.file>\n";
    exit;
  }

open(INLOG,$ARGV[0]);

while ($name = <INLOG>)
 {
   chop $name;

   @line = split(/\s+/,$name);
   $string = localtime(@line[0]);

   printf "%s %25s %10s %s %s %s %s %s %s %s\n",$string,@line[2],@line[4],@line[5],@line[6],@line[1],@line[3],@line[7],@line[8],@line[9];
 }

close(INLOG);

Я думаю приспособите по образцу
Ответ написан
Комментировать
fzfx
@fzfx
18,5 дм
cat file.log | perl -pe 'use POSIX qw(strftime);s/^\[(\d+)\]/strftime("%Y-%m-%d %H:%M:%S",localtime $1\/1000)/e'
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
hottabxp
@hottabxp
Сначала мы жили бедно, а потом нас обокрали..
Можно сделать на python:
from datetime import datetime

ts = 1582360680203/1000
print(datetime.utcfromtimestamp(ts).strftime('%Y-%m-%d %H:%M:%S'))
#2020-02-22 08:38:00
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы