STDIN圧縮/圧縮解除ツール

STDIN圧縮/圧縮解除ツール

STDINを圧縮してSTDOUTに出力するツールはありますか?このツール(またはそれに対応するツール)も解凍する必要があります。簡単なことは大丈夫ですが、損失はありません。

答え1

アーカイブ

ほとんどのユーティリティはSTDOUTへの出力をサポートします。例えばgzip:

$ echo "asdgasdfasdfasdfasdfasdfasdf" | gzip | xxd
00000000: 1f8b 0800 219b dd57 0003 4b2c 4e49 4f2c  ....!..W..K,NIO,
00000010: 4e49 c386 b900 45ce f97c 1d00 0000       NI....E..|....

xxd印刷できない文字を使用しました。実行してgunzip解凍

xz

xzは非常に同様に動作します。

$ echo "asdfasdfasdf" | xz | xxd
00000000: fd37 7a58 5a00 0004 e6d6 b446 0200 2101  .7zXZ......F..!.
00000010: 1600 0000 742f e5a3 e000 0c00 0b5d 0030  ....t/.......].0
00000020: 9cc8 abf9 a8be f900 0000 0000 9525 d79a  .............%..
00000030: 089a c592 0001 270d f37b f284 1fb6 f37d  ......'..{.....}
00000040: 0100 0000 0004 595a                      ......YZ

そして減圧の場合:

$ echo "asdfasdfasdf" | xz | xz -d
asdfasdfasdf

答え2

gzipこれを行います。から引用マニュアルページ:

GzipはLempel-Zivエンコーディング(LZ77)を使用して指定されたファイルのサイズを縮小します。可能な限り、各ファイルは拡張子を持つファイルに置き換えられます。.gz、同じ所有権モード、アクセスおよび変更時間を維持します。 (基本拡張子は-gzVMSの場合z MSDOS、OS / 2 FAT、Windows NT FAT、およびAtariの場合。 ) ファイルを指定しない場合、またはファイル名が「-」の場合、標準入力は標準出力に圧縮されます。。 Gzipは通常のファイルのみを圧縮しようとします。特にシンボリックリンクは無視されます。

もちろん他の人もいます。これはUnix / Unixシリーズシステムでは非常に一般的です。フィルター出力への標準入力。 「フィルタ」という言葉は多くの可能性をカバーしています。圧縮と解凍はそのうちのほんの一部です。

答え3

gzipはい、、、、、、...などたくさんあります。bzip2xz

cat testfile|gzip

圧縮されたstdinストリームはstdout

cat file.gz|gzip -d 

圧縮ストリームを解凍し、stdin解凍結果を次に出力します。stdout

オプションは異なる場合がありますが、他の多くの圧縮ユーティリティにもbzip2同様に適用されます。xzそのmanページを確認してください

関連情報