Unix-Timestamps aus OpenWRT-Logfile in menschlich lesbare Uhrzeit & Datum übersetzen

OpenWRT und andere auf Unix-basierende Betriebssysteme geben die Zeiteinträge bei Logeinträgen im Kernellog („dmesg“ auf der Kommandozeile) nicht mit echter Uhrzeit und Datum aus, sondern geben die Sekunden seit Start des Kernels aus, was kein Mensch lesen kann.
Diese Unix-Timestamp lässt sich glücklicherweise umrechnen.
Auf einem aktuellen Unix wäre „dmesg -T“ der richtige Befehl, doch leider unterstützen dies ältere Versionen oder solche für Kleinstcomputer wie etwa OpenWRT nicht.

Andere haben sich bereits mit dem Problem herumgeschlagen und eine wunderbare Lösung entwickelt, die ich hier wiedergebe:

Folgender Befehlt gibt das Kernellog mit echter Uhrzeit aus:

base=$(cut -d '.' -f1 /proc/uptime); 
seconds=$(date +%s); 
dmesg | sed 's/\]//;s/\[//;s/\([^.]\)\.\([^ ]*\)\(.*\)/\1\n\3/' | 
while read first; do 
  read second; 
  first=`date +"%d/%m/%Y %H:%M:%S" --date="@$(($seconds - $base + $first))"`;
  printf "[%s] %s\n" "$first" "$second"; 
done 

Voraussetzung ist natürlich, dass die Systemzeit korrekt eingestellt ist.