Nach bestimmter Zeilenzahl splitten?
Stefan Sieder
- perl
Hi,
ich versuche ein Script zu schreiben, was verschiedene Dateien einliest. Dann soll es diese Dateien nach Zeile 33 splitten, so das ich die ersten 33 Zeilen weiterverwenden kann.
Wie splittet man nach einer Zeilenzahl?
mfg
Stefan Sieder
Hallo Stefan
Ich schlage etwa folgendes Codefragment vor:
<schnipp>
open(SOURCE, "</irgendwo/sourcefile.txt") die;
$LineCount = 0;
$MaxLines = 30;
$NewString = "";
while(<SOURCE>)
{
$NewString .= $_;
$LineCount++;
# ... bis der Schleifenzähler die Zeilengrenze erreicht hat, ...
if($LineCount >= $MaxLines)
{
last; # ... dann Schleifenabbruch
}
}
print $NewString;
</schnipp>
Dieser Code ist nicht getestet, sollte jedoch funktionieren.
Mehr Infos zu Schleifen und Schleifenabbrüchen unter: <../../tgce.htm>.
Grüsse
Tom
Falls Du mit einem vernünftigen Betriebssystem arbeitest (also: Unix), könnte sich ein Blik auf "man head" lohnen.
In Perl kannst Du dann etwas in der Art
open(FILE, "head -33 $deineDatei ");
schreiben. Genaue Syntax zum Rein-Pipen mußt Du mal in den Man-Pages nachsehen. Die habe ich jetzt nicht im Kopf.