Thread perl one liner : Anzeigen der ersten und letzten Zeilen (12 answers)
Opened by bora99 at 2017-09-25 16:49

Linuxer
 2017-09-25 17:07
#187445 #187445
User since
2006-01-27
3870 Artikel
HausmeisterIn

user image
Definiere große Dateien.
Wenn sie am Stück in den Speicher gelesen werden, dann belegen Sie diesen.
Wenn nicht genug Speicher mehr frei ist, wird ausgelagert und es wird langsam...
Im schlimmsten Fall liest Du eine Datei von der Festplatte und parallel dazu lagert der Speicher auf den Swap-Bereich auf der Festplatte aus...


Ein Ansatz zum lesen der letzten X Zeilen wäre beispielsweise, an eine Stelle Y Bytes vor Dateiende zu springen und diesen Bereich einzulesen; dann darin nachschauen, wieviele Zeilenumbrüche da drin sind. Wenn die Anzahl mit dem gewünschten X übereinstimmt, kann man splitten und die gewünschten Zeilen ausgeben. Wenn nicht, liest man nochmal einen Bereich ein und wiederholt das Prozedere bis man die gewünschte Anzahl Zeilen hat.

Die Vorgehensweisen hängen halt von den Dateien ab (Größe der Dateien, Länge der Zeilen, ...), inwiefern sich solche Konzepte rentieren.

Alternativ könntest Du mit CPAN:Tie::File die Datei an einen Array binden und über diesen Array dann die ersten und letzten X Zeilen ausgeben lassen. Die Datei sollte dabei auch nicht komplett in den Speicher gelesen werden...
Last edited: 2017-09-25 17:08:31 +0200 (CEST)
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 perl one liner : Anzeigen der ersten und letzten Zeilen