Stefan Sieder: Nach bestimmter Zeilenzahl splitten?

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

  1. Hallo Stefan

    Ich schlage etwa folgendes Codefragment vor:

    <schnipp>

    Datei-Handler öffnen

    open(SOURCE, "</irgendwo/sourcefile.txt") die;

    Variablen definieren

    $LineCount = 0;
    $MaxLines = 30;
    $NewString = "";

    Alle Zeilen der Datei durchlaufen, ...

    while(<SOURCE>)
    {
    $NewString .= $_;
    $LineCount++;

    # ... bis der Schleifenzähler die Zeilengrenze erreicht hat, ...  
    if($LineCount >= $MaxLines)  
    {  
    

    last; # ... dann Schleifenabbruch
    }
    }

    Weitere Vearbeitung ...

    print $NewString;

    </schnipp>

    Dieser Code ist nicht getestet, sollte jedoch funktionieren.

    Mehr Infos zu Schleifen und Schleifenabbrüchen unter: <../../tgce.htm>.

    Grüsse
    Tom

  2. 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.