Schlagwort-Archive: Zeit

Open-Office: Dezimale Stunden oder Minuten im Zeit-Format anzeigen

Ich habe immer mal wieder das Problem, dass ich in Open-Office dezimale Stunden oder Minuten berechne und diese dann aber in einem menschlichen Format angezeigt haben möchte.

Also aus 3 * 0,3 Std wird 0,9 Std., dies soll aber als 0:54 angezeigt werden (also 54 Minuten, 0 Stunden).

Oder ich addiere Minuten, erhalte 104 und möchte das nun als 01:44 sehen.

Dies geht in Open-Office mit der nicht ganz so offensichtlich dafür geeigneten Funktion ZEIT. Dabei muss man den Stunden- oder den Minutenwert an die entsprechende Stelle der Parameterliste stellen und die anderen Felder mit 0 belegen.

Für die Stunden Geschichte von oben sieht das dann so aus: =ZEIT(0,9;0;0) oder =ZEIT(3*0,3;0;0).

Und bei den 104 Mituten erhält man die richtige Anzeige mit =ZEIT(0;104;0).

Natürlich kann man anstelle der direkten Zahlen hier auch Zellbezüge einsetzen.

Nur einen bestimmten Zeitabschnitt einer Logdateien ausgeben

In einer Logdatei lässt sich ja prima mit grep nach einer Zeichenkette suchen. Was aber, wenn man nur einen bestimmten Zeitraum der Logdatei durchsuchen möchte?

Nun, da hilft uns mal wieder das Universalwerkzeug Perl mit seinem sog. Bereichsoperator (..). Wird dieser nämlich im skalaren Kontext verwendet, liefert er uns solange falsch, solange der linke Ausdruck falsch ist. Sobald der linke Ausdruck (einmal) wahr wird, liefert der Bereichsoperator solange wahr zurück, bis der rechte Ausdruck wahr wird. Er ist also so etwas wie ein bistabiler Schalter mit einer Einschalt- und einer Ausschaltbedingung (der Elektroniker nennt so etwas ein Flip-Flop). Genug der Theorie, hier die praktische Anwendung für unseren Fall:

perl -n -e 'print $_ if /^Aug 18/ .. /^Aug 31/' /var/log/messages

Dies liefert uns alle Einträge vom 18. August bis zum 31. August (oder bis zum Ende der Datei, wenn heute erst der 28. August ist).

Mit einem nachgeschalteten grep kann man nun prima in diesem Abschnitt suchen. Hier ein Beispiel, welches alle anfragende Rechner für den o.g. Zeitraum aus der Logdatei des DNS-Servers ermittelt:

perl -n -e 'print $_ if /^Aug 18/ .. /^Aug 31/' named.queries | sed -n 's/^.* client ([^#]*)#.*$/1/p' | sort | uniq