Thread String einlesen und nachfolgendes Wort ausgeben
(20 answers)
Opened by SCORRPiO at 2014-04-15 10:15
Hallo zusammen,
ich schreibe gerade an einen Programm welches aus einer text Datei folgende zeile einliest: Code: (dl
)
ioc0 phy 0 scsi_id 1 HITACHI HUS153014VLS300 A598, 136 GB, state ONLINE, flags OUT_OF_SYNC oder Code: (dl
)
ioc0 phy 2 scsi_id 1 HITACHI ST3300657SS-H A598, 136 GB, state ONLINE, flags OUT_OF_SYNC und nun möchte ich das er mit folgendes ausgibt Quote habe bereits mit EDIT: my $ausgabe mit $ausgabe getauscht!! Code (perl): (dl
)
1 2 3 4 5 6 7 if($zeile =~ m/OUT_OF_SYNC/g){ $ausgabe=$zeile; my ($phy) = $ausgabe =~ /phy\s(\w.+)/; my ($state) = $ausgabe =~ /state\s(\w.+)/; my ($flags) = $ausgabe =~ /flags\s(\w.+)/; printf "phy: $phy, state: $state, flags: $flags"; } versuch es zu realisieren jedoch bekomme ich keine ausgebe. In Sache regex blicke ich noch nicht ganz durch. Ich hoffe es ist damit realisierbar. Ich nutze Perl v5.14.2 Danke schonmal Gruß SCORRPiO EDIT 2: Den Ganzen Code: 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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 use strict; use warnings; # Messages # ******** my $message_ok = "OK"; my $message_warning = "WARNING"; my $message_critical = "CRITICAL"; my $message_unknown = "UNKNOWN"; # Exit Status # *********** my $exit_ok = "0"; my $exit_warning = "1"; my $exit_critical = "2"; my $exit_unknown = "3"; # other Variable # *********** my $status = 3; # Wenn kein Status dann 3 (UNKNOWN) #~ my @werte=`/usr/sbin/mpt-status`; my @werte = `cat test4`; #test ausgabe my $zeile=""; #aktuelle Zeile fürs einlesen my $ausgabe; #Zeile für die Ausgabe # Programmierung # ******** foreach $zeile (@werte){ if($zeile =~ m/OPTIMAL/g){ exit "0"; } if($zeile =~ m/ONLINE/g){ exit "0"; } if($zeile =~ m/RESYNC_IN_PROGRESS/g){ $ausgabe=$zeile; my $phy = $ausgabe =~ /phy\s(\w.+)/; my $state = $ausgabe =~ /state\s\s(\w.+)/; my $flags = $ausgabe =~ /flags\s\s(\w.+)/; printf "phy: $phy, state: $state, flags: $flags ....RESYNC\n"; exit "1"; } else{ if($zeile =~ m/MISSING/g){ $ausgabe=$zeile; my $phy = $ausgabe =~ /phy\s(\w.+)/; my $state = $ausgabe =~ /state\s\s(\w.+)/; my $flags = $ausgabe =~ /flags\s\s(\w.+)/; printf "phy: $phy, state: $state, flags: $flags ....MISS\n"; exit "2"; } else{ if($zeile =~ m/OUT_OF_SYNC/g){ $ausgabe=$zeile; my $phy = $ausgabe =~ /phy\s \s([\w.]+)/; my $state = $ausgabe =~ /state\s \s([\w.]+)/; my $flags = $ausgabe =~ /flags\s \s([\w.]+)/; printf "phy: $phy, state: $state, flags: $flags ...OUT\n"; exit "2"; } else{ if($zeile =~ m/OFFLINE/g){ $ausgabe=$zeile; my $phy = $ausgabe =~ /phy\s \s([\w.]+)/; my $state = $ausgabe =~ /state\s \s([\w.]+)/; my $flags = $ausgabe =~ /flags\s \s([\w.]+)/; printf "phy: $phy, state: $state, flags: $flags ....Offline\n"; exit "2"; } }}} } Last edited: 2014-04-15 11:05:19 +0200 (CEST) Linux User || Perl 5.14
|