Thread Eine vorgegeben Zeile auslesen und After und Before Context (9 answers)
Opened by alla at 2010-04-29 23:26

alla
 2010-04-29 23:26
#136570 #136570
User since
2009-10-19
21 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen,

ich habe ein Problem mit meinem kleinen Script. Es muss folgendes machen:
in einem Text eine bestimmte Stelle suchen und zwei Zeilen davor und 2 Zeilen danach extrahieren und das ganze ausgeben etwa im Format:
Before --> Fundstelle <-- After

Das Script soll so was wie grep -A -B machen. Die Zeile, in der die Fundstelle auftritt, ist vorgegeben.

Mein Problem ist, dass ich zwar zu einer Zeile springen kann und sie auslesen, aber sobald ich einen neuen Zähler aufsetze, bekomme ich den alten nicht los und es springt nicht zu der gewünschten Zeile ($zeile+2 oder $zeile-2), sondern ausgehend von der vorgegeben zeile +2... hier ist mein code:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$zeile = $linenr; #die vorgegebene zeile, z.B. 7
# print "$zeileplus\n";

for ($i=1; $i < $zeile; $i++) {
$text = (<FILE3>);
}
$diezeiledieichwill = <FILE3>;

$pluszwei = $zeile+2; #2. zeile danach also 9.
for ($i=1; $i < $pluszwei; $i++) {
$text = (<FILE3>);
}

$diezeiledieichwill2 = <FILE3>;

print $diezeiledieichwill; #7.zeile
print $diezeiledieichwill2; #9.zeile


wie kann ich $i zurücksetzen, dass es neu anfängt? das Ganze verläuft innerhalb einer großen while-Schleife, wo noch die Datei bestimmt wird, welche ausgelesen werden muss.

Danke für Eure Tipps.

Gruß
Alla

View full thread Eine vorgegeben Zeile auslesen und After und Before Context