2011-08-08 2 views
9

にsedを使用して(zcatを/猫)のようなファイルや他の以下の効率的は</p> <p>はzip形式のためのsedの同等はあり、(解凍したファイルが.gz 2TBと同じ大きさかもしれません)私は、ファイル処理プログラムを書かれているし、今ではzip形式のファイルから読み込む必要が圧縮されたファイル

ONE=`zcat filename.gz| sed -n $counts` 

$カウント行うための最善のアプローチはどのようになるか:(行ずつ)を読み取るためのカウンタ

を上記の方法では動作しますが、かなりあります私は各行を読んで、特定のフィールドでマッチングを実行する必要があるので、大きなファイルでは遅くなります。

おかげで

EDIT

直接役立つていないが、ここではzcommands

http://www.cyberciti.biz/tips/decompress-and-expand-text-files.html

+1

圧縮ファイルの作業は遅くなります。 – Nobody

+3

私の意見では、ファイルを解凍してパイプで読み取ること**は、一時的にzipファイルを開いて結果を得る最も効率的な方法です。あなたが完了したら、ファイルをrezippingする時間を費やす必要はありません。 'sed'コードが完全に最適化されているか、awk、perl、pythonのいずれかを使用して計算を行う可能性が高いことによって、全体的な操作の効率を向上させる可能性が高くなります。がんばろう。 – shellter

+0

ありがとう..圧縮されていないと、ファイルサイズは2TBになりますので、私のインフラストラクチャでは実現できません。 – learner

答えて

3

のセットがあるさてあなたはどちらか以上の空き(すなわち、非圧縮ファイルを使用)より速度を持つことができますスペース(圧縮されたファイルとあなたが示したパイプを使用します)...ごめんなさい。圧縮ファイルを使用すると、常にオーバーヘッドが発生します。

2

圧縮形式の内部構造を理解していれば、圧縮データを完全に解凍せずに操作できるパターンマッチャーを書くことができますが、圧縮データから単純にパターンが存在するかどうかを判断する解凍されたデータのある部分に

2つ(またはそれ以上)の別々の圧縮解除の出力の組み合わせによってパターンを満たすことができるケースを処理する必要があるため、複雑なプロジェクトのように複雑なパターンがあれば、このプロジェクトは非常に複雑です。

関連する問題