Попытка преобразовать начальный временной код каждой строки файла журнала следующим образом
$ cat test.log
[Tue Apr 9 03:32:21 2024] {cmd1}
[Tue Apr 9 03:33:42 2024] {cmd2}
[Tue Apr 9 03:35:51 2024] {cmd3}
$
$ cat test.log | < How ?? >
2024-04-09 03:32:21 cmd1
2024-04-09 03:33:42 cmd2
2024-04-09 03:33:42 cmd3
$
Пытался использовать эти варианты, но безуспешно
$ cat test.log
[Tue Apr 9 03:32:21 2024] {cmd1}
[Tue Apr 9 03:33:42 2024] {cmd2}
[Tue Apr 9 03:35:51 2024] {cmd3}
$
$ cat test.log | awk -F"[][{}]" '{print $2" "$4}'
Tue Apr 9 03:32:21 2024 cmd1
Tue Apr 9 03:33:42 2024 cmd2
Tue Apr 9 03:35:51 2024 cmd3
$
$ cat test.log | awk -F"[][{}]" '{print strftime("%F %T", $2)" "$4}'
1970-01-01 00:00:00 cmd1
1970-01-01 00:00:00 cmd2
1970-01-01 00:00:00 cmd3
$
Функция strftime() возвращает время начала эпохи
$ date -d "Tue Apr 9 03:32:21 2024" +"%s"
1712633541
$
$ echo 1712633541 | awk '{print strftime("%F %T", $0)}'
2024-04-09 03:32:21
$
Также попробовал функцию system()
$ echo "Tue Apr 9 03:32:21 2024" | awk '{print strftime("%F %T", system("date -d \"$0\" +\"\%s\""))}'
awk: cmd. line:1: warning: escape sequence `\%' treated as plain `%'
date: invalid date 'sh'
1970-01-01 00:00:01
$
Подробнее здесь: https://stackoverflow.com/questions/782 ... -each-line
Как преобразовать начальную временную метку каждой строки ⇐ Linux
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение