Thread Logdatei filtern mit regulären Ausdrücken (16 answers)
Opened by cohama at 2012-02-28 11:24

Linuxer
 2012-08-09 22:22
#160797 #160797
User since
2006-01-27
3890 Artikel
HausmeisterIn

user image
So, habe jetzt mehr Zeit gehabt und auch ein wenig Testen können.

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
#!/usr/bin/perl
use strict;                             # parameter Definition before use them
use warnings;

# Version 0.3

my $BString = "Start";
my $EString = 'End';

sub ask_user {
    my $question = shift;

    print $question, ": ";
    chomp( my $answer = <STDIN> );

    return $answer;
}



#> main
#> -------------------------------------------------------------------------

system("clear");
my $infile  = ask_user( "Please name the input file" );
my $outfile = ask_user( "Please name the output file" );
my $number  = ask_user( "Please enter the call number" );

open my $in,  '<', $infile      or die "open($infile, ro) failed: $!\n";
open my $out, '>', $outfile     or die "open($outfile, w) failed: $!\n";

my @alldata;
my @data;
my $flag = 0;
while ( my $line = <$in> ) {
    if ( $line =~ m/$BString/ .. $line =~ m{$EString} ) {

        # speichere Zeilen von $Bstring bis $EString
        push @data, $line;

        $flag = 1       if $line =~ m{Number=$number};

        if ( $line =~ m{$EString} ) {
            push @alldata, @data;

            if ( $flag == 1 ) {
                print $out @data;
                $flag = 0;
            }

            @data = ();
        }
    }
}

close $out;
close $in;
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 Logdatei filtern mit regulären Ausdrücken