Mein Bash-Skript sucht nach einer Datum-Uhrzeit-Zeichenfolge, die wie folgt aussieht: yyyymmddThhmmss
, zum Beispiel 20160414T033407
.Wie wandle ich yyyymmddThhmmss in einen veränderbaren Datumszeit-Typ im Shell-Skript um?
Ich möchte diese Zeichenfolge in Datum/Uhrzeit Format konvertieren, so dass ich zum Beispiel die Zeitzone ändern kann. Momentan analysiere ich diese Zeichenkette hart und führe zu jeder Stunde einen -n aus, um den Zeitstempel in meine aktuelle Zeitzone zu konvertieren. Allerdings sehe ich, dass ich Rollstunden für die nächsten Tage usw. berücksichtigt habe. Was ist ein besserer Ansatz dafür? Vielen Dank.
Nizza Verwendung von [Substring Expansion] (https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html) jedoch in das OP gibt es ein "T" in der Zeichenfolge, yyyymmddThhmmss zB 20160414T033407 und Ihre Antwort adressiert das nicht! – user3439894
Es hängt auch davon ab, welche Version von 'Datum' Sie verwenden. Mit BSD 'date' können Sie ein Eingabeformat angeben, das dieselben Felder wie die Ausgabe verwendet. – chepner
'D =" 20160414T033407 "; Datum -d "$ {D: 0: 8} $ {D: 9: 2}: $ {D: 11: 2}: $ {D: 13: 2}" – Cyrus