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
、同じ所有権モード、アクセスおよび変更時間を維持します。 (基本拡張子は-gz
VMSの場合z MSDOS、OS / 2 FAT、Windows NT FAT、およびAtariの場合。 ) ファイルを指定しない場合、またはファイル名が「-」の場合、標準入力は標準出力に圧縮されます。。 Gzipは通常のファイルのみを圧縮しようとします。特にシンボリックリンクは無視されます。
もちろん他の人もいます。これはUnix / Unixシリーズシステムでは非常に一般的です。フィルター出力への標準入力。 「フィルタ」という言葉は多くの可能性をカバーしています。圧縮と解凍はそのうちのほんの一部です。
答え3
gzip
はい、、、、、、...などたくさんあります。bzip2
xz
cat testfile|gzip
圧縮されたstdin
ストリームはstdout
。
cat file.gz|gzip -d
圧縮ストリームを解凍し、stdin
解凍結果を次に出力します。stdout
オプションは異なる場合がありますが、他の多くの圧縮ユーティリティにもbzip2
同様に適用されます。xz
そのman
ページを確認してください