Thread Aus einem string einen Wert herausbekommen
(23 answers)
Opened by Forza at 2012-07-10 14:04
Hier ein Beispiel, wie man es lösen könnte.
Es gibt zwei globale Variablen ($last_*), die den letzten Start-Zeitpunkt und die dazugehörige PID speichern sollen. Die "Datei" wird zeilenweise durchgegangen. Für jede Zeile werden Zeitstempel und PID ermittelt. Die Daten werden übernommen, wenn a) noch kein Zeitstempel gespeichert wurde ODER b) der neu eingelesene Zeitstempel größer ist als der bisher gespeicherte. Solange die Zeitstempel dieses einheitliche Format haben, kann man sie mit einem einfachen Stringvergleich vergleichen. Beispiel: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 #! /usr/bin/env perl use strict; use warnings; my $last_stamp; my $last_pid; while ( my $line = <DATA> ) { if ( my ( $stamp, $pid ) = $line =~ m{^(\S+).+eginne.+pid=(\d+)} ) { if ( !defined $last_stamp || $stamp gt $last_stamp ) { $last_pid = $pid; $last_stamp = $stamp; } } } print "Last backup (pid $last_pid) started at $last_stamp\n"; __DATA__ 25.03.12_00:04:53 Datenbankbackup erfolgreich erstellt 25.03.12_00:07:26 Backup der Archivelogs erfolgreich erstellt 25.03.12_00:07:26 Beende backdb_stdb (pid=28948) 25.03.12_18:00:02 Beginne backdb_stdb (pid=22744) 25.03.12_23:53:29 Datenbankbackup erfolgreich erstellt 25.03.12_23:56:07 Backup der Archivelogs erfolgreich erstellt 25.03.12_23:56:07 Beende backdb_stdb (pid=22744) meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |