Thread Aus einem string einen Wert herausbekommen (23 answers)
Opened by Forza at 2012-07-10 14:04

Linuxer
 2012-07-11 10:08
#159723 #159723
User since
2006-01-27
3872 Artikel
HausmeisterIn

user image
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!

View full thread Aus einem string einen Wert herausbekommen