Thread gezippte Dateien mit perl durchsuchen (a la zgrep)? (21 answers)
Opened by toby at 2010-01-12 11:20

sid burn
 2010-01-12 11:58
#130427 #130427
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
Was ich ebenfalls empfehlen kann ist PerlIO::gzip
Dann musst du nur folgendes machen:

Code (perl): (dl )
1
2
3
4
5
6
7
use PerlIO::gzip;

open my $foo, "<:gzip", "file.gz" or die $!;
while ( my $line = <$foo> ) {
  print $line;
}
close $foo or die $!;


gzip dekomprimierung passiert transparent im hintergrund. klappt auch mit schreiben! (habe es aber noch nie schreibend genutzt).

EDIT:
Hatte es ebenfalls in einem Szenario für Logdateien genutzt die gz komprimiert waren und die ich durcharbeiten wollte. Ich denke es ist die simpelste Lösung du musst es nicht vorher dekomprimieren keine zusätzlich API lernen, system() calls oder ähnliches rumfuchteln. Ansonsten zum Speed war es deutlich schneller als eine vorherige dekomprimierung. Es ist sogar schneller als eine schon unkromprimierte Datei durchzugehen (zumindest war es das mit meinen Daten wo die unkrompimierten Logdateien meist ~1GiB oder größer waren). Liegt daran das die komrpimierten meist nur 100MiB groß waren und die I/O ersparnis größer ist als der zusätzlich CPU aufwand für das dekomprimieren.
Last edited: 2010-01-12 12:05:48 +0100 (CET)
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread gezippte Dateien mit perl durchsuchen (a la zgrep)?