Mam plik dziennika ze znacznikami czasu w formacie „22.09.2016 08:22:54” („+% Y:% m:% d% H:% M:% S”). Ten znacznik czasu znajduje się w strefie czasowej UTC.
Teraz muszę przekonwertować ten znacznik czasu na znacznik czasu Europa / Helsinki za pomocą skryptu bash.
Mam ten skrypt, który czyni konwersję tak, jak chcę.
#!/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"
Działa to dobrze, ale format „data” „-d” 2015-05-20 18:05:02 ”jest innym formatem w porównaniu z formatem datownika dziennika.
Chciałbym zmienić ten skrypt na coś podobnego ..
#!/bin/bash
sec=$(TZ="UTC" date +'%s' -d "$1")
TZ="Europe/Helsinki" date -d "@$sec" "+%Y:%m:%d %H:%M:%S"
Gdzie $ 1 może być w oryginalnym formacie daty mojego pliku dziennika "22.09.2016 08:22:54" ("+% Y:% m:% d% H:% M:% S").
Nie mogę tego zrobić. Czy ktoś może mi pomóc z tym .. Dziękuję
EDYTOWAĆ:
Próbowałem czegoś takiego i wielu innych kombinacji ..
#!/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"
ale jego błąd kończy się
date: extra operand ‘+%Y:%m:%d %H:%M:%S’
Try 'date --help' for more information.
date: invalid date ‘@’