gz形式の40GBファイルがあります。cksum
このファイルの圧縮されていない形式のレコード数を見つけたいと思います。私の方法の1つは次のとおりです。
- 解凍されたファイルの使用
gunzip
- ファイルを解凍するには、
wc
次のコマンドを使用します。cksum
- ファイル圧縮を再利用してください
gzip
。
この方法の問題は、ファイルの抽出と圧縮に時間がかかることです。約30~40分ほどかかる場合があります。別のアプローチは、zcat
レコード数を数えることです。cksum
zcat <file name> | wc -l
zcat <file name> | cksum
この方法は時間がかかりませんが、zcat
同じファイルに対して2回使用されます。もっと良い方法がありますか?たぶん、レコード数の合計を見つけるためにコマンドが使用されますかcksum
?
ベストアンサー1
moreutils
Debian(および他の場所)のパッケージには、共通ユーティリティの小さな宝物倉庫が含まれています。
その一つはですpee(1)
。tee(1)
これは、出力を(複数の)ファイルに書き込むのではなく、(複数の)コマンドにパイプするのと似ています。使い方はとてもシンプルで直感的です。
$ zcat foo.gz | pee md5sum wc
0a22adb99b92b4c5ad6beba9694238a3 -
403 2372 27766