圧縮ファイルのレコード数とcksum

圧縮ファイルのレコード数とcksum

gz形式の40GBファイルがあります。cksumこのファイルの圧縮されていない形式のレコード数を見つけたいと思います。私の方法の1つは次のとおりです。

  1. 解凍されたファイルの使用gunzip
  2. ファイルを解凍するには、wc次のコマンドを使用します。cksum
  3. ファイル圧縮を再利用してくださいgzip

この方法の問題は、ファイルの抽出と圧縮に時間がかかることです。約30~40分ほどかかる場合があります。別のアプローチは、zcatレコード数を数えることです。cksum

  1. zcat <file name> | wc -l
  2. zcat <file name> | cksum

この方法は時間がかかりませんが、zcat同じファイルに対して2回使用されます。もっと良い方法がありますか?たぶん、レコード数の合計を見つけるためにコマンドが使用されますかcksum

ベストアンサー1

moreutilsDebian(および他の場所)のパッケージには、共通ユーティリティの小さな宝物倉庫が含まれています。

その一つはですpee(1)tee(1)これは、出力を(複数の)ファイルに書き込むのではなく、(複数の)コマンドにパイプするのと似ています。使い方はとてもシンプルで直感的です。

$ zcat foo.gz | pee md5sum wc
0a22adb99b92b4c5ad6beba9694238a3  -
    403    2372   27766

おすすめ記事