解凍せずにzipファイルのファイル内容を読むことはできますか?

解凍せずにzipファイルのファイル内容を読むことはできますか?

zipファイルが与えられたら、zipfile.zip我々はそのファイルにtext.txt

text.txt解凍せずに内容を読む方法はありますかzipfile.zip

答え1

たとえば、ファイルを標準出力に直接ダンプできます。技術的にはまだ解凍されますが、ディスクには解凍できません。

$ unzip -p zipfile.zip text.txt

たとえば、行数を計算するには、次のようにします。

$ unzip -p zipfile.zip text.txt | wc -l

この-cオプションは似ていますが、内容の前に抽出された各ファイルの名前を書き込みます。

答え2

libarchiveはbsdtarinfozip / pkzip形式を含むさまざまなアーカイブ形式をサポートしているため、すべての形式で同じCLIを使用できます。

bsdtar xOf zipfile.zip text.txt

標準出力で指定されたアーカイブメンバーの内容をダンプしますtext.txt。最初に停止するオプションを追加しますq(実際には通常、アーカイブの特定のパスに1つのエントリしかありません)。

tar、、、、、、ファイルなどに対して同じtgzことをiso行うことができます。arcpio7z

答え3

zipファイルに利用可能なファイルが含まれている場合

zcat f.zip
zmore f.zip
zless f.zip
zgrep regexp z.zip

このコマンドはgzip圧縮ファイルでも機能します。 bzipとxzipにも同様のコマンドがあります。

bzcat bzmore bzless bzgrep bzdiff ...
xzcat ...

コマンドを使用して形式を解凍することもできます。例:

vim f.zip
vim f.bz2   ...
rg -z patter  z.zip     ## ripgrep recursive grep in compressed files

関連情報