У меня есть файл журнала с отметками времени в формате «22.09.2016 08:22:54» («+% Y:% m:% d% H:% M:% S»). Эта метка времени находится в часовом поясе UTC.
Теперь мне нужно конвертировать эту временную метку в европейскую / хельсинкскую метку, используя скрипт bash.
У меня есть этот скрипт, который делает преобразование, как я хочу.
#!/bin/bash
sec=$(TZ="UTC" date +'%s' -d "2015-05-20 18:05:02")
TZ="Europe/Helsinki" date -d "@$sec" "+%Y:%m:%d %H:%M:%S"
Это работает нормально, но формат ввода даты (-d "2015-05-20 18:05:02") отличается от формата моего журнала.
Я хотел бы изменить этот скрипт на что-то вроде этого ..
#!/bin/bash
sec=$(TZ="UTC" date +'%s' -d "$1")
TZ="Europe/Helsinki" date -d "@$sec" "+%Y:%m:%d %H:%M:%S"
Где $ 1 может быть в исходном формате даты моего файла журнала "22.09.2016 08:22:54" ("+% Y:% m:% d% H:% M:% S").
Я не могу заставить это работать .. Может ли кто-нибудь помочь мне с этим .. Спасибо
РЕДАКТИРОВАТЬ:
Я пробовал что-то подобное и много других комбинаций ..
#!/bin/sh
sec=$(TZ="UTC" date +'%s' "+%Y:%m:%d %H:%M:%S" -d "$1")
TZ="Europe/Helsinki" date -d "@$sec" "+%Y:%m:%d %H:%M:%S"
но его заканчивается ошибка ..
date: extra operand ‘+%Y:%m:%d %H:%M:%S’
Try 'date --help' for more information.
date: invalid date ‘@’