Verwenden von sed für eine komprimierte Datei

10

Ich habe ein Dateiverarbeitungsprogramm geschrieben und muss jetzt aus einer gezippten Datei lesen (.gz entpackte Datei kann so groß wie 2 TB werden),

Gibt es eine sed-Entsprechung für gezippte Dateien wie (zcat / cat) oder was wäre der beste Ansatz, um das Folgende effizient zu machen?

%Vor%

$ counts: counter zum Lesen (zeilenweise)

Die obige Methode funktioniert, ist aber für große Dateien ziemlich langsam, da ich jede Zeile lesen und den Abgleich in bestimmten Feldern durchführen muss.

Danke

BEARBEITEN

Obwohl nicht direkt hilfreich, hier eine Reihe von zcommands

Ссылка

    
learner 08.08.2011, 18:43
quelle

2 Antworten

4

Nun, Sie können entweder mehr Geschwindigkeit (d. h. unkomprimierte Dateien verwenden) oder mehr freien Speicherplatz (d. h. komprimierte Dateien und die von Ihnen angezeigte Pipe verwenden) ... sorry. Die Verwendung komprimierter Dateien hat immer einen Overhead.

    
C. Ramseyer 08.08.2011 18:47
quelle
2

Wenn Sie die interne Struktur des Komprimierungsformats verstehen, ist es möglich, dass Sie einen Muster-Matcher schreiben, der komprimierte Daten verarbeiten kann, ohne ihn vollständig zu dekomprimieren, sondern einfach aus den komprimierten Daten ermittelt, ob das Muster vorhanden ist ein bestimmtes Stück dekomprimierter Daten.

Wenn das Muster überhaupt komplex ist, klingt das wie ein ziemlich kompliziertes Projekt, da Sie Fälle behandeln müssen, in denen das Muster durch die Kombination der Ausgabe von zwei (oder mehr) separaten Dekompressionsabschnitten erfüllt werden kann. p>     

Chris Stratton 08.08.2011 19:53
quelle

Tags und Links