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
#!/usr/bin/perl $SUCHE="TARS"; $BEGRENZER_probe = "probe"; $i=0; $TEXT='probe http probe_L7_IDST-TARS-8085 port 8085 interval 5 passdetect interval 5 passdetect count 2 request method get url /login.jsp expect status 200 200 probe http probe_L7_IDST-TARS-18080 port 18080 interval 5 passdetect interval 5 passdetect count 2 request method get url /login.jsp expect status 200 200 probe icmp probe_L3_PING interval 4 passdetect interval 8 passdetect count 2 receive 2'; # Text in Zeilen aufteilen ------------------------------------------------------- $TRENNER="\n"; @KONFIG=split(/$TRENNER/,$TEXT); foreach $STRING(@KONFIG) { chomp($STRING); } #============================================================== #Suche------------------------------------------------------------------ if ($TEXT =~ /probe.*$SUCHE/) { print $&."\n"; } elsif ($TEXT =~ /.*probe.*/) { print $'."\n"; }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
probe http probe_L7_IDST-TARS-8085
port 8085
interval 5
passdetect interval 5
passdetect count 2
request method get url /login.jsp
expect status 200 200
probe http probe_L7_IDST-TARS-18080
port 18080
interval 5
passdetect interval 5
passdetect count 2
request method get url /login.jsp
expect status 200 200
1 2 3 4 5
my @paragraphs = split /\n\n+/, $TEXT; # splitten bei 2 oder mehr newlines for my $p (@paragraphs) { # in $p steht ein kompletter absatz von probe ... bis zum ende, # also mehrere zeilen }
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
probe http probe_L7_IDST-TARS-8085
port 8085
interval 5
passdetect interval 5
passdetect count 2
request method get url /login.jsp
expect status 200 200
probe http probe_L7_IDST-TARS-18080
port 18080
interval 5
passdetect interval 5
passdetect count 2
request method get url /login.jsp
expect status 200 200
2012-04-04T08:34:03 Ap0ll099Wenn ich das richtig verstehe wird ein "/n" als Trenner genutzt und alles ausgegeben, was mit "TARS" zusammenpasst und bis zu einem "/n" geht.
Wie schaff ich so etwas wenn ich aber kein "/n" als Trenner habe?
Könnte "probe" als Trenner dienen, also alle "probe" die am Anfang einer Zeile stehen, weil es ja auch vorkommt, wo es nicht als Trenner dienen darf?