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はbsdtar
infozip / pkzip形式を含むさまざまなアーカイブ形式をサポートしているため、すべての形式で同じCLIを使用できます。
bsdtar xOf zipfile.zip text.txt
標準出力で指定されたアーカイブメンバーの内容をダンプしますtext.txt
。最初に停止するオプションを追加しますq
(実際には通常、アーカイブの特定のパスに1つのエントリしかありません)。
tar
、、、、、、ファイルなどに対して同じtgz
ことをiso
行うことができます。ar
cpio
7z
答え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