www.bimminger.at

Tipps / Linux

Linux

Ein Javascript Problem und Lösen und Ersetzen mit sed



Dieser Eintrag funktioniert auf Chrome und Firefox in der aktuellen Version und liefert einen gültigen Datums- und Zeitwert:

console.log(new Date('2019-09-19 15:41:13'));


Allerdings auf Internet Explorer 11 (IE 11) und Safari auf iOS liefert diese Funktion leider ein Invalides Datum ("Invalid Date").

Richtig wäre hier dann:

console.log(new Date('2019-09-19T15:41:13'));


Und das ist halt leider auch die korrekte Standardkonforme Lösung. Ein Datum im ISO8601 Format - also inklusive dem "T".

Ersetzen mit sed


In meinem Fall gab es dann aber leider eine Vielzahl an Dateien die das betroffen hat, damit war die Lösung dann über die Console und sed die richtige Wahl. Ein regulärer Ausdruck der mir alle Datumswerte ersetzt.

mkdir ./neu
cd ./alt/
for i in *.html; do sed  -e 's/\([0-9]\{4\}-[0-9][0-9]-[0-9][0-9]\) \([0-9][0-9]:[0-9][0-9]:[0-9][0-9]\)/\1T\2/g' $i > ../neu/$i; done