hallo!
ich gebe in die komandozeile 2 parameter zum lesen von 2 files an.
wenn es fertig ist mit dem einem file zu lesen dann solle er mit dem zweiten file weiter machen. dabei soll er für jedes file etwas anderes machen.
ich gebe ein teil vom script als bespiel:
ist es auch möglich ais 2 while-schleifen ein einziges zu machen, hab eleder bisher keine lösung gefunden. bin leider noch anfänger.
danke für eure hilfe
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
while ( <dat1> ) {
$Datum = $_ if m/Date: /;
$Zeit = $_ if m/Time: /;
$errorFound = 1 if /Severity: Error/;
$lines .= $_;
#generate a new hash-hey
if ($Zeit && $Datum && $errorFound){
$Zeit =~ s/\D//g;
$Datum =~ m/(\d+)\.(\d+)\.(\d+)/g;
$dt = $3.$2.$1.$Zeit."_".$ARGV[0];
$Datum = $Zeit = "";
}
#put the error snippel in hash
if (/^\s*$/ or eof) {
$hash{$dt} = $lines if $errorFound;
$errorFound = 0;
$lines = ''
}
}
close dat1;
while ( <dat2> ) {
$Datum = $_ if m/Date: /;
$Zeit = $_ if m/Time: /;
$errorFound = 1 if /Severity: Error/;
$lines .= $_;
#generate a new hash-hey
if ($Zeit && $Datum && $errorFound){
$Zeit =~ s/\D//g;
$Datum =~ m/(\d+)\.(\d+)\.(\d+)/g;
$dt = $3.$2.$1.$Zeit."_".$ARGV[1];
$Datum = $Zeit = "";
}
#put the error snippel in hash
if (/^\s*$/ or eof) {
$hash{$dt} = $lines if $errorFound;
$errorFound = 0;
$lines = ''
}
close dat2;